STM32串口打印相关的疑惑

2019-08-14 00:12发布

本帖最后由 ARM学员 于 2017-9-20 10:15 编辑

首先,我用的是STM32F103ZE系列的芯片,基于RTX操作系统,发现用printf打印浮点类型的数据时,系统就会跳进"HardFault_Handler"中断,打印整型、字符串什么的都没问题。还发现在线程创建前打印浮点类型的数据正常,在线程创建之后打印就会有上面的这种情况了。不知道这种现象是怎么回事?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
augustedward
1楼-- · 2019-08-14 06:08
你用的是M4的芯片吗?应该是字节对齐的问题,开了FPU后就会出现这种问题,需要操作系统作一些变化
ARM学员
2楼-- · 2019-08-14 07:47
augustedward 发表于 2017-9-19 20:06
你用的是M4的芯片吗?应该是字节对齐的问题,开了FPU后就会出现这种问题,需要操作系统作一些变化

我用的是STM32F103ZE系列的芯片。我又试了一下,RTX和UCOS_II操作系统都有这个现象,能否说得更具体点呢。
正点原子
3楼-- · 2019-08-14 12:58
任务堆栈8字节对齐,试试
augustedward
4楼-- · 2019-08-14 17:58
ARM学员 发表于 2017-9-19 21:21
我用的是STM32F103ZE系列的芯片。我又试了一下,RTX和UCOS_II操作系统都有这个现象,能否说得更具体点呢 ...

103的不应该出现这种情况啊,你8字节对齐试试
ARM学员
5楼-- · 2019-08-14 20:08
 精彩回答 2  元偷偷看……
ARM学员
6楼-- · 2019-08-15 00:08
augustedward 发表于 2017-9-20 09:34
103的不应该出现这种情况啊,你8字节对齐试试

8字节对齐我是试过了,还是不行,而且在基于RTX操作系统的时候使用sprintf把浮点型的数据转换成字符串,然后再通过字符串的方式打印都不行。

一周热门 更多>