STM32F4XX UART 发送时出现HardFault

STM32F4 UART 发送时出现HardFault

发送uart数据时,如果使用的是非阻塞模式发送的话。数据的传参使用的是局部变量时,在uart繁忙的情况下会造成硬件错误,访问了错误的地址。

解决方法最简单的就是使用全局变量传数据。

但是uart通道繁忙的情况下也会引起另一个问题,就是使用非阻塞模式下发送uart会返回BUSY的状态。需要做判断并做重试机制。
还有一个问题就是同一个uart通道同时做收和发处理的话,会因为锁的问题产生冲突,这个网上其他地方也有提到。这个时候不做处理发送可能会有几秒的失效情况。所以建议在收发时返回状态为BUSY时,先调用放弃收发函数。在下个循环再次尝试。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值