在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

posted @ 2022-05-21 19:28  huameixiao  阅读(840)  评论(0编辑  收藏  举报