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

结果

满足预期效果

相关推荐
玩转单片机与嵌入式2 小时前
深入浅出TinyML 16:FFT、频带能量和MFCC分别适合什么任务?
stm32·深度学习·tinyml
深圳市宝华视联8 小时前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
恒锐丰科技韩生9 小时前
RB6005A|晶准 单节锂电池内置 MOS 保护芯片 DFN2×3‑8
嵌入式硬件·硬件工程
youshi66689 小时前
stm32-PWR、低功耗模式
stm32·单片机·嵌入式硬件
ACP广源盛139246256739 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 Serdes 长距离视频传输芯片 GSV5800 在私有化 AI 服务中的价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源·音视频
Funing79 小时前
STM32 电机动态 PI 控制:从编码器反馈、增量式 PI 到 Matlab 参数拟合与 PWM 输出
stm32·嵌入式硬件·matlab·pi控制算法
云泽80810 小时前
深入浅出 STM32(十八):时钟树、总线与寄存器的底层联动机制
stm32·单片机·嵌入式硬件
米饭不加菜11 小时前
C51 语言参考手册
经验分享·笔记·单片机·嵌入式硬件
深圳市宝华视联11 小时前
院感约束下,手术室音视频布线与设备摆放实施注意事项
嵌入式硬件·音视频·实时音视频·视频编解码·嵌入式实时数据库
科芯创展11 小时前
2.7VIN,5VOUT,360KHz,电荷泵升压芯片,XZ3120
单片机