中级会员
 
- 积分
- 216
- 金钱
- 216
- 注册时间
- 2018-5-25
- 在线时间
- 34 小时
|
10金钱
我用的芯片是STM32F103C8T6 64K flash 20K SRAM
系统有5个任务,加了看门狗,没有外部中断
1、start任务,优先级1,用来创建其它任务,然后我没有删除,而是1000ms喂狗一次和取反一个led作心跳
2、任务2,优先级2,按键扫描,15ms扫一次,如果有键按下,则进行一些事件标志位设置
3、任务3,优先级3,检查二值信号量busy发现如果串口1空闲,则从消息队列读取消息通过DMA发送,在DMA发送完成中断中释放busy-----------上位机用串口助手接收,有时很顺,有时会卡顿,用的是115200 8 N 1
4、任务4,优先级4,通过另一个串口2读取激光位置传感器的数值,当被任务5激活时,1ms读一次,连续读300次,然后放入串口1队列中,发送到上位机
5、任务5,优先级5,通过I2C发送一个位置信号,驱动目标运动一步,然后通过事件标志激活任务4
上位机串口助手看到,有时候数据很顺,300个数据一下就出来了,有时候很卡,一个一个蹦出来。我试着加深串口的队列,好像没什么改善,想请教一下,这原因大概方向?
|
|