USART---串口发送数据
来源:互联网 发布:甜甜圈是什么软件 编辑:程序博客网 时间:2024/05/16 18:00
/*
while((USART1->SR&0X40)==0);//等待发送结束
解析:
USART1->SR: 串口状态寄存器
USART1->SR&0X40即串口状态寄存器的TXE标志位,TXE标志位标识发送数据寄存器(TDR寄存器)是否为空。
while((USART1->SR&0X40)==0);即判断TXE标志位是否为0,
若为0,则等待此标志位被置1.
若为1(即发送数据寄存器中的数据全部被转移至移位寄存器,导致发送数据寄存器变成空,被硬件置为1),
则标识发送数据寄存器(TDR寄存器)为空,可以发送下一个字节帧数据到发送数据寄存器(TDR寄存器)。
清除TXE位一般都是通过往数据寄存器中写入数据完成的。
TXE是由硬件设置的,它表明:数据已经从TDR中转移到移位寄存器了,数据发送已经开始;TDR寄存器是空的;下一个数据可以写入USART_DR寄存器,而不会覆盖前面的数据。
当发送在进行时,一个对USART_DR寄存器的写命令将数据保存到TDR寄存器中,并且当前传输完成之后,TDR寄存器中的数据将被复制到移位寄存器中。
当没有进行发送时,往USART_DR寄存器中写入一个数据,数据将直接被放入移位寄存器,发送开始,TXE位将被立即置1
当一个帧发送完成时(结束位之后),TC位被置1
清除TC位是通过下面的软件操作完成的:(1)读一次USART_SR寄存器(2)写一次USART_DR寄存器(TC位也可以通过对它写0清除,这个清除序列只建议在多缓存通信中使用)。
USART1->CR1:串口控制寄存器1
其包含“TXEIE位”,即“发送数据寄存器(TDR寄存器)为空中断使能位”即“发送缓冲区空中断使能位”。
TXEIE发送缓冲区空中断使能(Transmit Interrupt Enable)位,设置该位为 1,当 USART_SR 中的 TXE位为1时,将产生串口中断。
如果TXEIE位被设置,则TEX被硬件置1时将产生一个串口中断。
如果此时USART正在发送数据,对USART_DR寄存器的写操作把数据存进TDR寄存器,并在当前传输结束时把该数据复制进移位寄存器。
如果此时USART没有在发送数据,处于空闲状态,对USART_DR寄存器的写操作直接把数据放进移位寄存器,数据传输开始,TXE位立即被置起。
当一帧发送完成时(停止位发送后)并且设置了TXE位,TC位被置起,如果USART_CR1寄存器中的TCIE位被置起时,则会产生中断。
*/
- USART---串口发送数据
- USART---串口发送数据
- STM32F3使用USART串口DMA发送数据,使用蓝牙发送
- usart 串口的发送-接收数据(正点改编)
- 串口通信Usart发送程序
- USART 串口 DMA 发送和接收
- USART串口发送0X00问题解决
- STM32 USART串口发送软件调试
- STM32 USART 串口 DMA 接收和发送的源码详解!
- STM32 USART串口DMA接收和发送模式
- STM32 USART 串口 DMA 接收和发送的源码详解!
- MSP430单片机USART串口发送字符和字符串
- STM32 USART 串口 DMA 接收和发送的源码详解!
- 串口发送数据类
- 串口发送数据类
- STM32 串口发送数据
- 串口发送数据
- c#串口发送数据
- Python 第二章 列表和元组(4) 元组
- LEETCODE: Candy
- 算法学习方法-针对ACM
- 20150106Review
- [Linux]RHEL虚拟机KVM使用网络桥接模式
- USART---串口发送数据
- MySQL C API函数大全
- NYOJ 55 懒省事的小明 (优先队列)
- This Android SDK requires Android Developer Toolkit version 20.0.0 or above
- Android 5.0.1(Lollipop)源码的下载、编译(eng版本)并烧录到Nexus 4
- cocos2dx 3.3 lua 绑定类
- ubuntu使用LDAP做用户管理
- 代码优化
- 找工作前的准备