[导读]你是否遇到过某个MCU串口不够的情况? 这时我们可以考虑用GPIO去模拟,如何具体实现呢?首选我们需要了解串口的传输协议,UART使用异步模式工作,不需要时钟信号,其一般格式为:起始位数据位校验位停止位。其中起始位1位,数据位5~8位,校验位0或1位,停止位1、1.5或2位。不过...
你是否遇到过某个MCU串口不够的情况? 这时我们可以考虑用GPIO去模拟,如何具体实现呢?
首选我们需要了解串口的传输协议,UART使用异步模式工作,不需要时钟信号,其一般格式为:起始位 数据位 校验位 停止位。其中起始位1位,数据位5~8位,校验位0或1位,停止位1、1.5或2位。不过最常用的格式是1位起始位、8位数据位、没有奇偶校验、1位停止位,简记为8/N/1。
8/N/1格式的时序图如下:
空闲时数据线上规定为逻辑1。
开始传输数据时先发送起始位,规定为逻辑0,接收端会检测这个下降沿,以便之后开始采样接收数据。
起始位之后是数据位,规定先发送最低位,即LSB First。因为UART没有时钟信号,故使用波特率来确定每一位的长度,不过为保证检测的准确性,实际采样频率会高于波特率,一般每一位会进行若干次采样,取中间的采样值作为这一位的结果。
奇偶校验位一般不使用。
停止位一般使用1位,规定为逻辑1,除了表示传输结束外,停止位还可以起到时钟同步的作用。
需要注意的是,这里的逻辑0并不一定是0V,这与使用的电平标准有关。对于TTL电平而言,逻辑0是0V,逻辑1是高电平(一般为3.3V或5V);对于RS-232电平而言,逻辑0是3V~15V,逻辑1是-3~-15V。
除了TX、RX、GND信号外,UART中还会有诸如RTS、CTS等流控信号,因为用得不是很多,此处就不总结了。
以发送0x23(无奇偶校验)为例来说明,传输时序如下:
注意是LSB First,也就是最低位先传输哦。
0x23,二进制表示为00100011,传输顺序为1->1->0->0->0->1->0->0掌握清楚这个时序那么也就好用GPIO模拟了,除了需要两个GPIO,还需要两个定时器(分别用于接收和发送时序控制),另外需要说明的是,为方便起见,采样频率这里就设置成了波特率。
1) 对于接收,当RX引脚检测到下降沿时,进入GPIO中断,然后开启一个定时器,第一次定时器周期设置为1/波特率的一半(目的是为了在中心处判断是否为低电平,以表示是否为起始位),再之后就可以设置定时器周期为1/波特率,每隔此周期在定时器中断里去采样RX引脚电平,将数据接收完毕。
2)对于发送,首先发送一个起始位,之后以1/波特率为周期,在定时器中断里去发送比特位即可。
我在NXP的MCU上做了实现,经过测试波特率可以达到38400. 有需添加取。
以下是对程序的简单说明:
1)gpio_uart_demo_init() 里可以配置UART的相关参数,如波特率,奇偶校验,数据位长度
2)void gpio_uart_read(uint8_t *bufptr, uint32_t size, void (*rx_callback)(void)) 这个函数为uart 接收函数,第一个参数为数据存放buffer,第二个数据为接收长度,第三个参数为callback函数。注意目前的实现是调用此函数后,当接收完指定长度数据后,会停止接收数据。 如果之后要继续接收,需要再次调用这个函数。
3)void gpio_uart_write(uint8_t *databuf, uint32_t num,void (*tx_callback)(void))这个函数为uart发送函数,第一个参数为发送数据buffer,第二个数据为发送长度,第三个参数为callback函数。
4)移植到其他不同平台非常容易,只需要修改下GPIO和定时器配置即可。END来源:TopSemic嵌入式,作者:wuyage版权归原作者所有,如有侵权,请联系删除。▍
扫描二维码,关注更多精彩内容
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
【2024年4月24日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)发布全新PSOC™ Edge微控制器(MCU)系列的详细信息,该系列产品的设计针对机器学习(ML)应用进行了优...
关键字:
物联网
机器学习
MCU
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...
关键字:
MCU
芯片
半导体
台湾新竹 – 2024年4月23日 – 著名的微控制器供货商新唐科技公司,与全软件开发生命周期提供跨平台解决方案的全球软件公司Qt Group宣布深化合作,扩展新唐科技人机界面(HMI)平台支持「Qt for MCUs」...
关键字:
微控制器
嵌入式系统
MCU
Holtek针对语音应用推出I/O Voice OTP MCU HT68RV032/HT68RV033/HT68RV034,最大特点为内建2/4/8Mbit Voice Flash ROM,语音可重复更新,最长可达85/...
关键字:
MCU
智能家电
Holtek持续精进电磁炉产品技术开发,再推出更具性价比的电磁炉Flash MCU HT45F0005A/HT45F0035A。相较于前代产品提供更丰富的资源,如硬件辅助UL认证功能、硬件I²C可与面板通信及过电流保护及...
关键字:
电磁炉
MCU
IGBT
Holtek新推出专为锂电池保护可支持多达8节电池的模拟前端IC HT7Q2552,提供I²C接口控制系统组态及MCU通信,支持短路放电保护、高压唤醒及芯片过温保护的中断回报机制。适合广泛应用于手持电动工具、园艺工具及手...
关键字:
锂电池
手持电动工具
MCU
2024年4月18日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 很荣幸地宣布与Edge Impulse建立新的全球合作关系。Edge Im...
关键字:
机器学习
MCU
CPU
【2024年4月16日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)在2023年持续扩大其在汽车半导体市场的领先地位。TechInsights的最新研究显示,2023年全球汽车半...
关键字:
MCU
半导体
电池管理系统
从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...
关键字:
DSP
MCU
电机控制
进芯电子
· Ceva-Waves™ Links™ IP系列提供完全集成的多协议连接解决方案,包括Wi-Fi、蓝牙、UWB、Thread、Zigbee和Matter,为下一代连接协议丰富的MCU和SoC简化开发工作并加快上市时间
关键字:
人工智能
MCU
SoC
单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...
关键字:
单片机
MCU
嵌入式开发板是嵌入式系统开发的重要硬件平台,它集成了微处理器(或微控制器)、存储器、输入输出接口以及其他必要的外围电路,主要用于开发、测试、验证嵌入式软件和硬件设计方案。本文将详细介绍嵌入式开发板的基本构造原理、核心组件...
关键字:
嵌入式开发板
MCU
波特率9600的传输速率为每秒9600个比特,而波特率115200的传输速率为每秒115200个比特,因此,115200的传输速度比9600快得多。
关键字:
波特率
传输速度
MCU
STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...
关键字:
STM32
51单片机
MCU
以前微处理器(MPU)与微控制器(MCU)是截然不同的两种设备,MPU支持丰富的软件系统,如Linux和相关的软件堆栈,而MCU通常将专注于裸机和RTOS。近年来,随着MCU的性能越来越高,MCU和MPU之间的区别变得越...
关键字:
MCU
MPU
开发板
该产品线提供了并行SRAM的低成本替代方案,容量高达 4 Mb,具有143 MHz SPI/SQI™通信功能
关键字:
SRAM
存储器
MCU
瑞典乌普萨拉,2024年3月27日 – 全球领先的嵌入式系统开发软件解决方案供应商IAR自豪地宣布:公司备受全球数百万开发者青睐的开发环境再次升级,已率先支持瑞萨首款通用32位RISC-V MCU,该 MCU 搭载了瑞萨...
关键字:
MCU
RISC-V
CPU
3月26日,四维图新旗下杰发科技与国际第三方独立检测、检验和认证机构德国莱茵TÜV集团(以下简称TÜV莱茵)在上海举办颁证仪式,杰发科技宣布AC7840x系列车规级MCU芯片已成功通过ISO 26262 ASIL B功能...
关键字:
芯片
MCU
智能座舱
吹风机是居家生活必备物品,然而传统型吹风机所带来的体验并不佳,高频使用的女性群体对此更是深有感触。究其原因主要有:转速低,通常在每分钟2万转左右,导致干发速度慢;高温干发,容易损伤头发;噪声大且体积笨重等等。因此,能改善...
关键字:
吹风机
MCU
电源
Holtek新推出Sub-1GHz RF OOK/FSK Transmitter OTP MCU BC68R2123,扩大Holtek Sub-1GHz Tx系列产品涵盖面,并提供客户无线控制产品优势竞争力,适合各类无线...
关键字:
RF发射器
MCU
无线控制