欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 九、3 串口发送+printf函数移植+打印汉字

九、3 串口发送+printf函数移植+打印汉字

2024/10/25 14:23:15 来源:https://blog.csdn.net/2403_85143327/article/details/142730936  浏览:    关键词:九、3 串口发送+printf函数移植+打印汉字

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一样,都是中文的编码,基本都是兼容的

若已经工程已经选好了编码格式,可使用转码软件进行批量转码,使用时应关闭文件的只读

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com