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);

结果

满足预期效果

相关推荐
BUG_yechiyu12 分钟前
STM32CubeMX使用9 配置Time4 PWM(DMA)输出
stm32·单片机·嵌入式硬件
学嵌入式的小杨同学13 分钟前
STM32 进阶封神之路(三十五):TFT LCD 工程化实战 ——FSMC 高速驱动、多图层界面、中英文显示与图形引擎(完整可落地)
stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程·智能硬件
chao18984416 分钟前
基于STM32F1的声源定位系统设计与实现
stm32·嵌入式硬件·unity
网易独家音乐人Mike Zhou17 分钟前
【Python】TXT、BIN文件的十六进制相互转换小程序
python·单片机·mcu·小程序·嵌入式·ti毫米波雷达
421!36 分钟前
C语言学习笔记——10(结构体)
c语言·开发语言·笔记·stm32·学习·算法
我叫洋洋44 分钟前
[STM32 和 PWM 输出 结合 proteus 仿真]
stm32·嵌入式硬件·proteus
凌盛羽44 分钟前
ESP32-S3定时器组Timer Group0/1的使用
stm32·单片机·嵌入式硬件·链表·esp32·定时器
我不是程序猿儿1 小时前
【嵌入式】第2讲:USB CDC 从“插上电脑”到“出现 COM 口”,枚举过程到底发生了什么
服务器·stm32·单片机·嵌入式硬件·电脑·负载均衡
2301_805962931 小时前
树莓派学习1-I2C配置与设备状态检测
嵌入式硬件·学习