|
同样的程序进行比较: AVR单片机外接16M晶振:运行程序是矩阵按键扫描采用定时器中断100ms扫描一次、还有串口接收中断程序1S接收一次运行程序上后,串口接收中断程序不会影响矩阵按键扫描,不会发生丢失按键动作现象。 STM32F103外接8M晶振:同样的是矩阵按键扫描采用定时器中断100ms扫描一次、还有串口接收中断程序1S接收一次 运行程序上后,串口接收中断程序就直接影响到矩阵按键扫描,就是在执行串口接收中断程序时,检测不到按键,发生丢失按键动作现象。 按理说STM32F103的系统时钟是72M,而AVR单片机晶振是16M,STM运行速度要快很多,不应该出现丢失按键动作的现象啊?难道是这两款单片机的中断机制不一样造成的吗?AVR单片机是没有中不需要设置中断优先级的,而STM32F103是需要设置中断优先级的,问题是我不管怎么设置中断优先级都没什么用,还是会发生丢失按键动作现象??? |
有没有大佬知道这个电路输出为什么只有1V多?按数据手册接的,设置外部输出,输出值也不对
有没有大佬有1602的HAL库驱动
stm32 spi从机实现bissc通信(在线等)
stm32 定时器外部时钟1的TI1FP1及TI2FP2的设置问题
STM32F1定时器中触发信号TRC的来源及选择配置是怎么样的
输入捕获测频率返回异常?
STM32F103 bug
怎么将keil工程更换为vscode工具链?
HAL_UART_Receive_IT不管设置size是多少,我串口一次性发4个字符,最后保存在buffer的也只有一个元素
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
微信公众号
手机版
100ms定时器设置没有问题,都测试过了。
就算把100ms改成50ms,按键检测也会丢失,而且串口中断里面的程序也不多,也没有占用多少时间。
1. 时钟配置是否正确?默认情况下 STM32F103 的默认时钟是片内 8MHz RC 振荡器,你需要手动打开外部晶振,再把时钟调整成 PLL 72MHz。
2. I/O 端口的速度配置是否正确?STM32F103 的端口速度有 2MHz、10MHz、50MHz 三种配置。
程序或硬件问题,并不是STM32不行。
中断服务中不要执行太长代码,不要出现while死循环等待。