目录
优先级
CS1237
现象
分析1
验证1
分析2
验证2
步进电机
现象
解决方法
堆栈
创建的任务不运行
现象
解决方法
本篇内容记录在使用 freertos过程遇到的问题与解决方法。
优先级
CS1237
现象
读到的数据总是有毛刺,如
总是出现不规则大值。
分析1
怀疑是mV信号采样线太长(15cm)引起。
验证1
15cm 采样线 卷起来;没效果;
CS1237 in+,in- 用万用表实时测量(相当于并了个大电阻),监测数值;没效果
分析2
CS1237 驱动延时是采用 硬件 while 等待的方式,怀疑是freertos 优先级抢占问题,提高优先级验证。
验证2
参考连接
FreeRTOS 任务优先级说明_freertos 优先级_Unix探索之旅的博客-CSDN博客
对于 STM32F103,F407 和 F429 来说,中断优先级的数值越小,优先级越高。 而 FreeRTOS
的任务优先级是,任务优先级数值越小,任务优先级越低。
原任务优先级2,改为3后 问题解决。
步进电机
现象
通过两个定时器主从模式输出固定数量 step 脉冲,
解决方法
是因为freertos 启动的时候导致的第一次输出错误。
freertos启动后 在控制脉冲输出,正常。
备注:有些适配好的freeertos 是在系统启动的时候才初始化 systick ,使用的时候要注意时序。
堆栈
创建的任务不运行
现象
原系统3个任务正常运行,添加的一个任务不运行。
解决方法
通过增加堆栈解决
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 20 * 1024 ) )