在STM32中 使用sprintf函数导致死机或者无法获取数据
问题原因
使用stm32F4xx进行嵌入式开发,使用ucosii来调度任务,接收到的串口数据是float类型 需要转换成字符串来显示,所以使用了sprintf函数
实际运行程序结果输出是0.0,debug调试后发现float数据是正常的,排除数据解析错误,最后在csdn上找到了答案
具体原理没理解,解决方案是在定义堆栈的时候进行8字节对齐
__align(8) OS_STK START_TASK_STK[START_STK_SIZE];
附上链接https://blog.csdn.net/xiaolei05/article/details/7109027