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

结果

满足预期效果

相关推荐
Hello_Damon_Nikola4 分钟前
HT2813从入门到精通
单片机·嵌入式硬件·物联网
天空'之城44 分钟前
单片机基础核心知识点汇总(二)
单片机·嵌入式硬件
恒锐丰-罗生1 小时前
宽压降压电源新选择|CN8610 60V/1A 异步降压芯片,车载 / 工业 IoT 一站式解决方案
嵌入式硬件·硬件工程
恒锐丰-罗生1 小时前
宽压降压新标杆!CN8810 4.5~100V 高压 DCM 异步降压芯片,车载 / 工业 IoT 全能电源方案
嵌入式硬件·硬件工程
@晓凡10 小时前
keil5找不到下载器
stm32
Devlab10 小时前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
Dr.kangder14 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
zlinear数据采集卡16 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛1392462567316 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
Rocktech_ruixun18 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人