Clion开发stm32之微妙延迟(采用nop指令实现)

前言

  1. 需要借助逻辑分析仪动态调整参数
  2. 此次测试的开发芯片为stm32f103vet6

延迟函数

声明

c 复制代码
#define NOP_US_DELAY_MUL_CNT 5 /*nop 微妙延迟需要扩大的倍数(根据实际动态修改)*/
void bsp_us_delay_nop(uint32_t us);

void bsp_ms_delay_nop(uint32_t ms);

定义

c 复制代码
void bsp_us_delay_nop(uint32_t us) {

    us = us * NOP_US_DELAY_MUL_CNT;
    while (us--) {
        __NOP();
    }
}

void bsp_ms_delay_nop(uint32_t ms) {
    for (uint32_t i = 0; i < ms; ++i) {
        bsp_us_delay_nop(1);
    }
}

测试

c 复制代码
static void TEST_init() {
    stm_pin_define_t *pb_5_ptr = stm_get_pin(PB5);
    stm32_pin_define_mode_set(pb_5_ptr, pin_mode_output);
    while (true) {
        stm32_pin_define_toggle(pb_5_ptr);
        bsp_us_delay_nop(2);

    }
}

sys_init_export(TEST, TEST_init);

结果

满足预期效果

相关推荐
新晨单片机设计14 分钟前
S006A-基于STM32单片机温湿度检测系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
逐步前行2 小时前
ESP32-S3-分区表(Partition Table)
单片机
星河单片机2 小时前
STM32驱动HS‑S37A水位传感器+OLED完整实验讲解
stm32·单片机·嵌入式硬件
代码不接地3 小时前
【EDA】0.公共部分&元件库设计
嵌入式硬件
一条破秋裤3 小时前
16_TIM编码器接口测速
笔记·stm32·学习
糖糖单片机设计4 小时前
STM32水稻苗大棚环境监测系统
stm32·单片机·嵌入式硬件
star learning white5 小时前
STM32入门学习3
stm32·单片机·学习
jianqiang.xue5 小时前
审查技能库(上):内存安全四件套
stm32·单片机·物联网·架构·esp32
XiHongShi20165 小时前
cpuz分享,建议保存
单片机·学习
恒锐丰科技林技术员6 小时前
EG2226 全桥驱动芯片:高压电机逆变驱动的高性价比方案
经验分享·嵌入式硬件·硬件工程