
打算测试STM32C031C6开发板的长短按键,在按键中断处理程序中使用HAL_Delay()延时函数,程序则无法运行,类似进入了死循环,于是则添加了延时函数如下: /------------------------------------------------------------ us延时函数 ------------------------------------------------------------/ void delay_us(uint16_t us) { uint16_t n; while(us--)for(n=0; n<CLOCK; n++); } /------------------------------------------------------------ ms延时函数 ------------------------------------------------------------/ void delay_ms(uint16_t ms) { while(ms--)delay_us(1000); } 但在测试过程中发现延时函数似乎被优化了,不起任何作用。我使用驱动LED翻转的方式进行测试,无论如何设置延时时间,LED引脚的翻转时间一直都是1.333us左右,不会随延时的设置时间改变而变化,不知是何原因引起的。 这是用逻辑分析仪抓取的LED引脚时序图: 测试的代码如下图: |
NUCLEO-C031C6开发板测试2——定时器及PWM应用
请问stm32c092怎么配置flash呀,这个配置手册在哪里下载呀
为啥串口配置后发出来的数据不一样,工具和mcu配置的波特率一样的
stm32C092R的固件包在哪下载呀
STM32C092的cubemx无法使用
官网的NUCLEO-C092RB板子资料问题
NUCLEO-C071RB CAD资源mb2046-bdp.zip中文件有误,并不是C071RB的电路
STM32C0x的最新数据手册在哪里下载
STM32C0的adc精度可以达到多少?
STM32C092如果不使用CAN,内存可不可以拿出来用。
添加volatile uint16_t n
延时函数粘贴过来后格式变了失去了换行符号,换成截图如下:
谢谢!按照您的建议解决了问题。
按键中断函数中不应该调用HAL_Delay()函数。用__nop()软件延时。
是的,在中断处理函数中不能调用系统的HAL_Delay()函数,必须自己另写延时函数,否则就无法运行。