当前位置:网站首页>关于TXE和TC标志位的小知识
关于TXE和TC标志位的小知识
2022-07-08 00:36:00 【51CTO】
TXE标志位
(针对 发送数据寄存器)
TXE为1:TDR里的数据全部移到了移位寄存器,且没有新的数据进TDR。
TXE为0:TDR里有数据,未空,则TXE为0。
TXE与"FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG)"搭配使用来判断TDR中是否存在数据
TC标志位
(针对 发送数据寄存器)
TC为1:从TDR过来的数据全部被移送到TX引脚,且TDR里也没有新的数据。
TC为0:从TDR里过来的数据还没有全部移过来,或者之前TDR里的数据被移走了,但TDR里又来了新的数据。
原因在于

解决方法:
- 在发送"K"前先读USART_SR;
- 软件清“0”,需要用到下面的函数
多组进行传输,需要查看对应的多个TXE标志位和一个TC标志位(TC为了确保最后一个字符从发送移位寄存器到TX)
重写USART_SendByte()使其可以重复写多个字符
发送字符串的函数
串口通信方式:轮询法、中断法。一般接收使用中断。
ITStatus值为1,表示可以读取数值了
ITStatus值为0,表示还不可以读取数值
可以通过while和if来进行判断
USART_GetITStatus() | USART_GetFlagStatus() | |
相同点 | 都是访问串口的SR状态寄存器 | |
不同点 | 不仅会判断标志位是否置1,同时还会判断是否使能了相应的中断,所以在串口中断函数,通常使用该函数 | 只判断标志位,在没使能相应的中断时,通常使用该函数来判断标志位是否置1。 |
看懂一个库函数,需要结合具体的实例。
printf函数
在C语言中用于打印信息到控制台上。printf是单片机开发中调试的利器!
对printf底层函数进行重定向,使用fputc和fgetc
printf()函数使用了半主机模式,会导致程序无法运行,因此要禁止这种模式
- 使用微库:使用微库时,就默认关闭了半主机模式
- 使用微库
- 引入stdio.h头文件
- 重写fputc和fgetc函数

可能会出现"FIFLE" is underfined,加上
- 不使用微库,但是需要加上下面的话
- 两种方法相同点:
- 1都使用“stdio.h"头文件
- 都需要重写printf底层函数,fputs和fgets.
- 两种方法不同点:
- 是否勾选“Use MicroLIB”
半主机模式:半主机模式是ARM单片机的一种调试机制,它需要通过仿真器来连接电脑和ARM单片机,并调用相应的指令来实现单片机向电脑显示器打印信息。
微库是为小内存嵌入式设备而设计,可以减少代码所占空间。
尽量少使用微库
- 相对于C标准库而言,支持的功能更少,主要体现在对操作系统的支持上。
- 标准的东西相对更可靠。
两个函数的相关内容
区别 | int fputc(int ch,FILE *fp)函数 | int fgetc(FILE *fp)函数 | ||
功能 | 将一个字符写入到文件中 | 从文件中读出一个字符 | ||
参数 | ch要写入的字符,fp指向FILE结构的指针 | fp指向FILE结构的指针 | ||
返回值 | 成功,返回该字符;遇到文件尾或读取错误时,返回EOF(-1) | 成功,返回该字符;遇到文件尾或读取错误时,返回EOF(-1) | ||
如何更好学习单片机
- 首先找一个合适字节的教程
- 动手实践!!
感谢海创电子的视频教学
海创电子: https://space.bilibili.com/93630735/?spm_id_from=333.999.0.0
边栏推荐
- 云原生应用开发之 gRPC 入门
- 《ClickHouse原理解析与应用实践》读书笔记(7)
- MySQL查询为什么没走索引?这篇文章带你全面解析
- 发现值守设备被攻击后分析思路
- burpsuite
- From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run
- C language -cmake cmakelists Txt tutorial
- Remote sensing contribution experience sharing
- 软件测试笔试题你会吗?
- Reading notes of Clickhouse principle analysis and Application Practice (7)
猜你喜欢

Keras' deep learning practice -- gender classification based on inception V3

Many friends don't know the underlying principle of ORM framework very well. No, glacier will take you 10 minutes to hand roll a minimalist ORM framework (collect it quickly)

From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run

metasploit

Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布

云原生应用开发之 gRPC 入门

Beaucoup d'enfants ne savent pas grand - chose sur le principe sous - jacent du cadre orm, non, ice River vous emmène 10 minutes à la main "un cadre orm minimaliste" (collectionnez - le maintenant)

如何制作企业招聘二维码?

Apache多个组件漏洞公开(CVE-2022-32533/CVE-2022-33980/CVE-2021-37839)

很多小夥伴不太了解ORM框架的底層原理,這不,冰河帶你10分鐘手擼一個極簡版ORM框架(趕快收藏吧)
随机推荐
ANSI / NEMA- MW- 1000-2020 磁铁线标准。. 最新原版
Android 创建的sqlite3数据存放位置
ClickHouse原理解析与应用实践》读书笔记(8)
很多小夥伴不太了解ORM框架的底層原理,這不,冰河帶你10分鐘手擼一個極簡版ORM框架(趕快收藏吧)
CV2 read video - and save image or video
【SolidWorks】修改工程图格式
由排行榜实时更新想到的数状数值
剑指 Offer II 041. 滑动窗口的平均值
body有8px的神秘边距
Introduction à l'outil nmap et aux commandes communes
Many friends don't know the underlying principle of ORM framework very well. No, glacier will take you 10 minutes to hand roll a minimalist ORM framework (collect it quickly)
Version 2.0 of tapdata, the open source live data platform, has been released
碳刷滑环在发电机中的作用
能力贡献 GBASE三大解决方案入选“金融信创生态实验室-金融信创解决方案(第一批)”
Redisson distributed lock unlocking exception
Apache多个组件漏洞公开(CVE-2022-32533/CVE-2022-33980/CVE-2021-37839)
Usage of hydraulic rotary joint
pb9.0 insert ole control 错误的修复工具
Nmap tool introduction and common commands
Tapdata 的 2.0 版 ,開源的 Live Data Platform 現已發布