STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC
与STM32的发送中断相关的标志位有USART_IT_TXE
和USART_IT_TC
。
根据ST芯片手册的信息可知,USART在发送移位寄存器(Transmit Shift Register)前面,还有一个TDR(Transmit data register)寄存器。芯片手册注图如下:
芯片手册对TXE的描述如下,向DR寄存器写入数据即可清除TXE标志位。
TXE标志位由硬件置位,产生TXEIE中断标志位,如果开启了TXE中断,则会产生一次中断。
TXE置位,意味着TDR的数据移位到DR寄存器,并已启动发送;TDR寄存器已为空,可以发送下一字节数据到TDR寄存器,并且不会覆盖之前DR寄存器的内容。
当传输在进行时,写入DR寄存器的内容被保存到TDR寄存器,等待当前传输完成时,再将TDR寄存器的内容拷贝到DR寄存器,然后执行发送;
当传输未进行时,写入DR寄存器的内容被直接写入到DR移位寄存器,启动数据传输,并立即置TXE位;
每传输完一字节内容,如果TEX位为1,则TC位为1。并且会产生一个中断,如果设置了USART_CR1寄存器的TCIE位。
TC位清除软件顺序:
1.读USART_SR寄存器;
2.写USART_DR寄存器。
总结
USART_IT_TXE
是在TDR寄存器为空时产生的中断标志位;USART_IT_TC
是在DR寄存器发送完最后一个位时产生的中断标志位。
STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC相关推荐
- STM32中事件标志位与中断标志位
事件标志位:FlagStatus 中断标志位:ITStatus 当一个事件发生时,事件标志位由硬件置1,此时无论是否使能中断 若在此时使能中断将产生中断,其实中断标志已经被置1(产生事件的时候) 可见 ...
- STM32用USART发送字符串,以USART_FLAG_TXE和USART_FLAG_TC怎么用
STM32用USART发送字符串,以USART_FLAG_TXE和USART_FLAG_TC怎么用 一:STM32用USART发送字符串 void UART_Send_Message(u8 *Data ...
- java线程锁标记_java 线程 中断标志位
课程素材来自 http://enjoy.ke.qq.com/ 版权所有 java线程中,线程中断方法详解: 线程自然终止:自然执行完或抛出未处理异常 stop(),resume(),suspen ...
- java 线程 中断标志位
课程素材来自 http://enjoy.ke.qq.com/ 版权所有 java线程中,线程中断方法详解: 线程自然终止:自然执行完或抛出未处理异常 stop(),resume(),suspen ...
- 线程中断标志位 interrupt()、interrupted()、isInterrupted() 的认识
常见问题 首先你是怎么去关闭一个开启的线程.调用中断方法之后,线程就立即停止运行吗? 带着这两个问题探讨一下,主要围绕着这三个方法讲述: interrupt().interrupted().isInt ...
- dsp的ad标志位是什么_关于STM32 AD转换的ADC_FLAG_EOC标志位问题
关于STM32 AD转换的ADC_FLAG_EOC标志位问题 [复制链接] 小弟最近再写STM32的ADC,看了很多网的例程都是用DMA接数据,但是我想直接用AD读到寄存器,再拿出来处理. 在写程序的 ...
- 定时器中断标志位理解
1.定时器中断标志位程序 ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT) { ITStatus bitstatus = RES ...
- STM32的USART发送数据时如何使用TXE和TC标志
在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器(下图中阴影部分的TDR),另一个是程序看不到的移位寄存器(下图中阴影部分Transmit Shift Register). ...
- 【串口发送中断】基于赛元单片机使用三合一串口的UART功能
文章目录 前言 中断的方式发送数据 代码示例 准备工作 宏定义及全局变量 初始化 中断服务函数 ==发送逻辑函数== 启动发送函数 总结 前言 关于赛元单片机触摸的那篇文章确实帮助到过一些网友,后来有 ...
最新文章
- 使用PostMan测试文件上传接口
- 《分布式系统:概念与设计》一1.6 实例研究:万维网
- excel python 形状_何使用Python操作Excel绘制柱形图
- 怎么安装python3-如何装python3
- OpenCV使用模板与遮罩匹配的实例(附完整代码)
- js 小数取整的函数
- 音视频技术开发周刊 | 225
- Activity与Intent
- c++设置单元格填充色_格式函数text,设置自定义格式的万金油
- 免费生成https证书以及配置
- 德佑地产房产经纪人区域总监访谈:有肌肉,更有内涵!
- 有功功率 无功功率 功率因数
- 如何设置ubuntu的PATH环境变量
- 奔图打印机显示未连接_国货之“彩” |奔图CP2200DW彩色激光打印机首测
- idea 添加格式化json插件GsonFormat 和快速解析第三方返回json数据
- springboot+vue开发小说网站及作品写作发布
- 2019华为软件精英挑战赛总结篇
- 论文阅读-Whisper语音识别(OpenAI)
- 腾讯云“黑石”真相——“物理私服”
- Mac苹果 M1配置cocoapods
热门文章
- 潭州学院html学习(day04)
- 计算机存储系统之磁盘阵列技术
- Life is going on
- 【卢森堡大学】年薪55W+RMB,计算机科学副研究员(博士后),low code 机器学习研究...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.my.mapper.UserM
- STM32F1_HAL库用户使用手册UM1850
- 平板电脑软件测试招聘,【华为工资】软件测试工程师待遇-看准网
- ios 输入法扩展_iOS 11自带输入法新增3个小功能,贴心!
- WCS系统中运输车交通管制
- 思维/图论 (CodeForces 1189D2 	 Add on a Tree: Revolution)