《STM32库开发实战指南 》USART

2020-10-04  本文已影响0人  再凌

骨干知识点在STM32控制遥控小车中已经有提及,如果有需要直接在那一份代码上做少许改动即可使用。


补充几个当时还不会的知识点。

发送寄存器

寄存器 功能
TE 发送使能
TXE 发送单个字节的时候使用,检查发送寄存器为空?
TC 发送字符串的时候使用,实质上时多次调用发送单字符的函数,但是最后一次退出前要检查TC,发送完成寄存器
TXIE 发送完成中断使能

printf的多态

我们可以在Keil5中的工程选项中,勾选Use MicroLIB,这样我们就可以在工程中使用stdio.h头文件了。

当然了,单片机又没有屏幕和键盘,所以原来printf、scanf的实现方法当然不能用了,不过我们可以通过串口的方式来实现其。按照串口的方法,将要显示的内容输出到串口,将要获得的字符从串口中读取,那么无论是printf、scanf,还是getchar,putchar,我们都可以在电脑上的串口调试工具看到效果了。

例如,实现fputc()

int fputc(int ch, FILE *f)
 {
 /* 发送一个字节数据到串口 */
 USART_SendData(DEBUG_USARTx, (uint8_t) ch);

/* 等待发送完毕 */
 while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);

 return (ch);
 }
上一篇下一篇

猜你喜欢

热点阅读