基于nRF52832串口切换

本文介绍了如何在nRF52832芯片上实现串口切换,以满足三个串口通信的需求。通过设置中断和使用队列,确保在切换串口时不会丢失数据,并详细描述了主串口与两个复用串口的切换逻辑,以及线程间的串口管理。在切换策略中,使用标志位来确定当前使用的串口,以避免数据混乱和丢失。
摘要由CSDN通过智能技术生成

1.切换串口基本知识

关于切换串口的问题,首先由于项目需求,需要3个串口进行通信,但是nordic(52832)这款芯片只有一个串口,所以需要进行串口的切换。

不过唯一感到欣慰的是,只有一个串口需要保持长久的通讯,另外两个串口通讯是短时间的,这样在短时间内使用完串口,再切回主串口,理论上是可行的。

在调试之前,我们需要了解我们的串口的使用基本功能,主串口,目前定义为和模块的通讯串口,这个串口数据的特点是随机吐数据和请求再吐数据,如果其随机吐数据时,我们正在切换串口时,可能会将数据丢失,因此,我们在模块获取数据时,设置一个中断,有数据到来,触发中断,再取数据,将数据放入一个队列中。

理论上是,将发送的数据都加入到一个队列里面,防止多方抢占串口,造成串口数据乱码的现象,因此,我们将另外两个串口的发送和接收都封装到队列里面,这样做的后果是,如果队列里面的指令较多,那么等到自己需要的指令会产生延时,所以在要求实时性比较高的任务时,建议使用io口模拟串口。

好了,废话不多说,下面直接贴代码和思路。

 

2.切换串口的代码

/*创建队列,将需要发送的数据放入队列之中,以及入队列和出队列的方法*/

CREAT_FIFO  uart_cmd;

set_data2fifo(uchar *p); //将数据塞入队列

get_data2fifo(uchar *p

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nRF52832串口DFU是指使用Nordic公司为其nRF52832芯片提供的串口(USART)接口进行固件升级的一种方法。串口DFU代表数据固件升级(Data Firmware Update),通过串口接口将新的固件传输到nRF52832芯片中,实现固件升级的功能。 nRF52832是一款低功耗、高集成度的蓝牙低功耗(BLE)系统级芯片,适用于物联网和低功耗应用。在开发过程中,固件升级是一个重要的环节,可以使产品保持最新的功能和性能,修复已知的漏洞和错误。 nRF52832串口DFU的工作原理是通过将新的固件文件传输到nRF52832芯片的内部存储器进行更新。首先,在计算机上安装nRF52832串口DFU工具,并连接串口线将计算机与nRF52832芯片连接起来。然后,选择要升级的固件文件,并发送到串口接口。nRF52832芯片会接收到固件文件并将其存储到内部存储器中。最后,芯片重启并加载新的固件,完成固件升级过程。 使用nRF52832串口DFU进行固件升级具有很多优点。首先,它可以通过串口线直接从计算机传输固件文件,无需额外的硬件设备。其次,升级过程简单方便,不需要拆卸设备或更换芯片。此外,nRF52832芯片的低功耗特性使得固件升级过程中能够保持设备的低功耗工作状态。 总的来说,nRF52832串口DFU是一种方便、高效的固件升级方法,可以帮助开发人员和制造商保持产品的最新性能和功能,并提供更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值