初级会员

- 积分
- 186
- 金钱
- 186
- 注册时间
- 2015-8-19
- 在线时间
- 42 小时
|
本人STM32小白,在学系寄存器版本同时,多个同学推荐我学库函数版本,目前库函数学习中:
之前做的小东西用寄存器写得,并没有发现这方面的问题,可是库函数版本时候就出现了这样的问题:
实验问题:串口通信:实现功能,发送简单的单字符控制命令进行控制,暂时用LED灯
历程好使,改动之后好使
加入PWM功能好使,加入定时器中断后就不好使,没有反应,但是改变串口中断优先级有反应。
定时器中断优先级:TIM2 抢占优先级1 优先级0
TIM3 抢占优先级1 优先级1
TIM4 抢占优先级1 优先级2
TIM4 抢占优先级1 优先级3
串口优先级 若串口优先级 抢占优先级0 优先级1
实验结果:发送命令不识别
若串口优先级 抢占优先级3 优先级3
实验结果:发送命令识别慢
顺序一: PWM 定时器 串口
顺序二: PWM 定时器 串口
问题已经解决:解决方法:在初始化之前定时器设置在串口前面,降低定时器优先级,同时提高串口中断优先级通过实验效果不明显
串口中段抢占优先级 1 3效果比较好 逐渐试了其他的中断优先级,发现一个现象:中断优先级之间有空差(即相隔几个中断优先级不用)影响反应速度,即中断优先级之间顺序挨着最好!
可是我觉得我在程序中的顺序又不太对,希望大神能提供一些指点
|
|