前言
- 需要借助逻辑分析仪动态调整参数
- 此次测试的开发芯片为stm32f103vet6
延迟函数
声明
#define NOP_US_DELAY_MUL_CNT 5 /*nop 微妙延迟需要扩大的倍数(根据实际动态修改)*/
void bsp_us_delay_nop(uint32_t us);void bsp_ms_delay_nop(uint32_t ms);
定义
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);}
}
测试
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);
结果
满足预期效果