1、接线图
TX与RX交叉连接,TXD接STM32的PA10,RXD接STM32的PA9
VCC与3.3V用跳线帽连接
2、函数介绍
3、代码部分
(1)发送字节的函数(Byte)
可直接发送十六进制数 如0x41,也可直接发送字符 如'A'
常用的汉字字符集有GB2312、GBK、GB18030等。
收录了所有国家的字符的字符集:Unicode字符集,常用传输形式是UTF8
(2)发送数组的函数(Array)
传递数组需要使用指针
(3)发送字符串的函数(String)
\0对应空字符,是字符串结束的标志位
可以写成0 或 '\0'
(4)发送字符形式的数字
在电脑上显示字符串形式的数字
需要把Number的个位、十位、百位等,以十进制拆分开,然后转换成字符数字对应的数据,依次发送出去
如12345
取万位,12345/10000%10=1(除以一万,再对10取余)
取千位,12345/1000%10=2(除以一千,再对10取余)
取哪一位,就 /10^x%10
4、printf函数的移植方法
(1)使用printf之前,需要打开工程选项
MicroLIB是Keil为嵌入式平台优化的一个精简库
(2)还需要对printf进行重定向,将printf函数打印的东西输出到串口,因为printf函数默认是输出到屏幕,而单片机没有屏幕,所以要进行重定向
在串口模块里最开始加上#include,之后在后面重写fputc函数,把fputc重定向到串口
fputc是printf函数的底层,printf函数在打印时,不断调用fputc函数一个个打印的,把fputc函数重定向到了串口,那printf就输出到串口了
5、(1)多串口使用printf
可以用sprintf,sprintf可以把格式化字符输出到一个字符串里,sprintf可以指定打印位置,所以不涉及重定向问题,所以每个串口都可以用sprintf进行格式化打印。
可以先定义一个字符串,再打印到字符串,再发送字符串
(2)封装sprintf
printf这类函数支持可变的参数,参数个数不固定。
先在头文件里添加头文件 #include,
然后在最后对sprintf进行封装
sprintf只能接收直接写的参数,对于封装格式的参数要用vsprintf
6、显示汉字的操作方法
(1)编码格式选UTF8
串口助手也需要选择UTF8,才能解码正确
(2)编译器不报错的方法
打开工程选项
(3)若软件对UTF8兼容性不好,可切换为GB2312编码
打开配置
串口助手里选择GBK编码,一般Windows软件默认的就是GBK的编码,GBK与GB2312一样,都是中文的编码,基本都是兼容的
若已经工程已经选好了编码格式,可使用转码软件进行批量转码,使用时应关闭文件的只读