历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2018年12月14日 | KST-STM32学习之USART

2018-12-14 来源:eefocus

1、STM32F103ZE 单片机内部集成有 3(USART)+2(UART)个串行通信接口。


2、相应的串行通信接口对应的管脚。 


这里写图片描述


3、注意了,USART和UART是不一样的!


USART - 既能实现同步通信,又可以异步通信。 


UART - 只能实现异步通信。


4、几个标志位的认识


发送数据寄存器的数据传送到移位寄存器后,发送数据寄存器(TDR)就空了,这个时候硬件会将TXE置位。向TDR中写数据会自动清除TXE


当TXE置位,并且没有数据再写入TDR,这个时候硬件会将发送完成标志位(TC)置位。


同时还可通过TXEIE或者TCIE设置相应的中断使能,从而进入相应的中断服务函数!


注:USART发送功能(TE)置位后,将发送一个空闲帧(0xFF),如果此时没有数据发送,TXE标志位和TC标志位会一直处于置位状态,且如果此时是能了TXEIE或者TCIE,将不断的重复执行串口中断服务函数。


由于 TDR 寄存器一旦为空,TXE 标志位会硬件置位,进而触发中断,所以当不发送数据时要及时关闭发送中断。


5、关于接受数据


相比于发送数据,接受数据似乎更简单了点。 


接受完毕后,硬件设置接收数据寄存器非空标志位(RXNE),当去读数据,这个标志位会自动清除,当然也可以手动清除。


6、关于引脚配置


TXD 引脚配置为复用推挽输出模式 


RXD 引脚配置为浮空输入模式


7、配置流程总结


使能 USART 时钟及配置相关引脚


注意看对应USART在那个总线上,并且相应引脚应该是什么模式


USART 外设初始化参数设置


波特率,数据位等,使能发送和接收功能,××_Init进行初始化。一旦使能发送功能,便会开始发送空闲帧。


串口中断优先级


使能 USART 中断


注意在此只使能串口接收中断,发送中断必须在发送前使能,发送完毕后关闭,否则程序会重复执行中断服务函数。


使能 USART 外设


编写 USART 中断服务函数

推荐阅读

史海拾趣

智烽维(CDA)公司的发展小趣事

随着技术的不断成熟和市场的不断拓展,智烽维在2015年开始面向全球开展业务。公司凭借卓越的产品质量和优质的服务,成功打入了国际市场,并在多个国家和地区建立了稳定的销售网络。全球业务的拓展不仅为智烽维带来了更多的商机,也进一步提升了公司的品牌影响力和市场竞争力。

EnerSys公司的发展小趣事

EnerSys一直致力于技术创新和研发投入。公司拥有一支专业的研发团队,不断推出具有竞争力的新产品和解决方案。例如,EnerSys在锂电池领域取得了重要突破,成功开发出高能量密度、长寿命的锂电池产品。这些创新产品不仅满足了客户的多样化需求,还推动了公司在电子行业中的持续发展。

得力(deli)公司的发展小趣事

得力公司最初以文具制造起家,但在电子科技快速发展的时代,公司意识到必须转型升级以适应市场需求。于是,得力决定进军专业门槛高、技术壁垒深的打印机产业。经过数年的科研攻坚,得力成功研发出首台激光工程机,并在随后几年内,发展成为国内唯一一家同时掌握激光、喷墨打印核心技术研发、生产能力的企业。这一跨越不仅展现了得力公司在科技创新方面的决心和毅力,也为其在电子行业树立了新的里程碑。

EMC [ELAN Microelectronics Corp]公司的发展小趣事

义隆电子股份有限公司于1994年5月在台湾创立,以亚太区著名的IC设计公司为目标。公司初始阶段就明确了以研发和销售集成电路(IC)产品为核心业务的战略方向。在创立初期,义隆电子积极引进高素质的研发人才,建立了强大的研发团队,并投入大量资金用于新产品的研发。凭借卓越的技术实力和敏锐的市场洞察力,义隆电子在消费性芯片、通讯类芯片等领域迅速取得了突破。

Aimtec公司的发展小趣事

随着业务规模的扩大,Aimtec公司开始将目光投向国际市场。公司先后在欧洲和亚洲设立了办事处,通过本地化的销售策略和技术支持,逐步打开了国际市场的大门。在国际竞争中,Aimtec凭借其优质的产品和服务,赢得了众多客户的信赖和好评。同时,公司还积极参与国际电子行业的交流与合作,不断提升自身的技术水平和市场竞争力。

General Electronic Devices公司的发展小趣事
提供稳定的直流电压。

问答坊 | AI 解惑

发个qtopia编程的要点

最近在做linux+qte 在arm平台上的界面显示,由于周围 几乎没有做 这块的,qt学习起来相当吃力, 这个是qtopia部分一些精华 要点 分析,看后很受启发…

查看全部问答>

DSP破解行业难题

在电子行业中,DSP高速运算适合做图像以及音频压缩以及编解码,但是不适合跑界面,ARM又弥补了这个空缺,因此,在现在的消费和行业用户中,利用DSP压缩以及传输audio以及图片,利用ARM跑界面相互配合是一个很大的方向,有朋友出来讨论下双核的ARM&d ...…

查看全部问答>

现在DSPC2000系列的开发板大概在多少钱一块啊

现在DSPC2000系列的开发板大概在多少钱一块啊,最好本身带USB接口的仿真器。…

查看全部问答>

windows CE 7部署虚拟机出现 TFTP超时

windows CE 7部署虚拟机出现  TFTP超时怎么办?…

查看全部问答>

2440BSP包中LCD驱动sources如何得来

大家好! 断断续续接触CE,今天有遇到一个问题 我用三星原来的BSP自己用PB有生成了一个新的BSP,为什么两个BSP下的LCD驱动中sources这个文件内容不一样呢 (不排除我修改过其他文件,我记不清了),我只是想知道他们为什么不一样了 比如 我自己新生成 ...…

查看全部问答>

PPC2003用的操作系统是ce5还是6啊?

想安装ce5,谁能给个能下的地址?…

查看全部问答>

数据丢失怎么办?

    相信做嵌入式开发的都知道数据的非易失性保存,通常就是Flash,但是通常会有数据的丢失,但是,我一直在考虑到底是什么导致了数据的丢失。在Flash的相关操作,主要是写和擦处,应该说读的时候造成数据丢失的概率要小些,而写和擦处的 ...…

查看全部问答>

请解惑:为何Upgrade没成功

正在学习USB的几个实验,其中的DFU遇到了困难。将DFU程序烧写到开发板,然后使用DFUSe Demonstration将STM32F10xUSBLibUSBLibdemosDevice_Firmware_Upgradeimages 中的joystickmouse.dfu去upgrade CPU,重启运行,正常。但问题 ...…

查看全部问答>

关于28035的SPI

SPI的初始化要做哪些工作?…

查看全部问答>