OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6373|回复: 5

如何用printf输出汉字在串口

[复制链接]

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
发表于 2017-12-4 10:49:14 | 显示全部楼层 |阅读模式
10金钱
是这样的,我想实现蓝牙的汉字传输,蓝牙软件本身支持有GB2312编码格式,现在想改动接受串口程序和发送数据程序,调试过程中需要用串口显示汉字,所以想求解一下
单纯用printf("汉字\r\n");是可以输出到串口但是我想通过定义一个变量来存每一个汉字字符,然后再通过printf输出到串口去,不知道要如何实现
我网上看到有说用wprintf,但是这个函数是直接编译不过去的

最佳答案

查看完整内容[请看2#楼]

我忘了还有%s这个方式的输出。。。没什么问题了,后面的我另外开帖咨询吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2017-12-4 10:49:15 | 显示全部楼层
我忘了还有%s这个方式的输出。。。没什么问题了,后面的我另外开帖咨询吧
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13092
金钱
13092
注册时间
2012-11-26
在线时间
3810 小时
发表于 2017-12-4 10:51:08 | 显示全部楼层
不知道你在表达什么
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2017-12-4 10:54:43 | 显示全部楼层
我看了一下串口USART_DR这个寄存器,我发现他是一个32位寄存器,31:9是保留,只有8:0是存的数据值,但是汉字是两个字节,需要的是16位,这样一来还可以实现吗?
QQ截图20171204105350.jpg
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2017-12-4 10:56:00 | 显示全部楼层
串口接收数据的函数在底层是这个,uint16_t USART_ReceiveData(USART_TypeDef* USARTx),如果说只有8位数据值,为什么又要返回16位的无符号整型呢?
QQ截图20171204105357.jpg
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
481
金钱
481
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2017-12-4 11:00:51 | 显示全部楼层
jermy_z 发表于 2017-12-4 10:51
不知道你在表达什么

就是如果变量存的是数字,用串口printf输出数字,
printf("%d\n",res);
但是我想用串口输出汉字呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 09:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表