STM32 运行atof函数进入hard fault中断

35 篇文章 13 订阅 ¥159.90 ¥299.90

        目前为了糊口,做了硬件工程师,因此博客也很久没更新了。目前也只能业余时间自己玩玩喜欢的东西。

        最近在研究FOC时候,发现STM32在运行“atof”函数时候,导致程序进入了hard fault中断中。

        事情的起因是这样的:

        我已经通过Jlink的RTT功能,替代了单片机的串口日志输出。翻阅其头文件后,发现提供了RTT_read相关的功能。因此我简单做了个读取功能。

#define MAX_RTT_LENGTH	32
typedef	struct __msg_recv_t {
	uint16_t	len;
	uint8_t		data[MAX_RTT_LENGTH];
}msg_recv_t;

msg_recv_t	msg_recv = {
		.len	=	0,
		.data	=	{0},
};

void getMsg(void) {
	  if (SEGGER_RTT_HasData(0)) {
		  SEGGER_RTT_ReadNoLock(0, msg_recv.data, MAX_RTT_LENGTH);
		  _SEGGER_RTT.aDown[0].WrOff = 0;
		  _SEGGER_RTT.aDown[0].RdOff = 0;

		  msg_recv.len = strlen((char *)msg_recv.data) - 1;
	  }
}


void msg_analysis(void) {
	getMsg();
	if (msg_recv.len != 0 && msg_recv.data[0] == 'T') {
		printBuf("get msg is", msg_recv.data, msg_recv.len, 8);
		printf("data is {%s}\n", msg_recv.data);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘉禾天成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值