OpenEdv-开源电子网

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

能否实现蓝牙传输汉字

[复制链接]

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
金钱
480
注册时间
2017-7-29
在线时间
233 小时
发表于 2017-12-4 11:20:48 | 显示全部楼层 |阅读模式
50金钱
是这样的,我想实现蓝牙的汉字传输,蓝牙软件本身支持有GB2312编码格式,现在想改动接受串口程序和发送数据程序,但是发现一些问题
我看了一下串口USART_DR这个寄存器,我发现他是一个32位寄存器,31:9是保留,只有8:0是存的数据值,但是汉字是两个字节,需要的是16位,这样一来可以实现吗?
而且串口接收数据的函数在底层是这个,uint16_t USART_ReceiveData(USART_TypeDef* USARTx),如果说只有8位数据值,为什么又要返回16位的无符号整型呢?

QQ截图20171204105350.jpg
QQ截图20171204105357.jpg

最佳答案

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

另外,发送汉子这样两个字节数据的时候,都是先发送一个字节再发送另外一个字节,对于中英文混杂的情况来说,如果接收端接收到的一个字节数值大于128那么说明这个数据是汉子,当前接收的是汉字的第一个字节,为了完整知道这个汉字是什么,还需要再接受一个字节;反之则说明当前接收到的这个字节是一个英文字符。 事实上,液晶屏显示汉字也用到了相同的方式,楼主如果感兴趣可以参考一下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-12-4 11:20:49 | 显示全部楼层
另外,发送汉子这样两个字节数据的时候,都是先发送一个字节再发送另外一个字节,对于中英文混杂的情况来说,如果接收端接收到的一个字节数值大于128那么说明这个数据是汉子,当前接收的是汉字的第一个字节,为了完整知道这个汉字是什么,还需要再接受一个字节;反之则说明当前接收到的这个字节是一个英文字符。

事实上,液晶屏显示汉字也用到了相同的方式,楼主如果感兴趣可以参考一下。
十六进制带我飞。
回复

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
金钱
480
注册时间
2017-7-29
在线时间
233 小时
 楼主| 发表于 2017-12-4 11:21:31 | 显示全部楼层
还有一个就是原子本身程序中串口发送函数,是不支持中文的吧?
QQ截图20171204112014.jpg
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-12-4 13:38:10 | 显示全部楼层
串口例程支持中文……楼主你没有看主程序吗。。。发送的都是中文啊。。。
十六进制带我飞。
回复

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1522
金钱
1522
注册时间
2014-5-16
在线时间
217 小时
发表于 2017-12-4 14:18:29 | 显示全部楼层
其实你不用关心传送的是汉字还是数字还是英文,这些文字在内存中的表现都是字节数据,具体怎么解析这些数据,需要接收端来处理.
比如"中国china"这个字符串要发送,ANSI编码的话在内存中就是9个字节,发送时直接按顺序发这9个字节就行.接收端可一次性收完这9个字节,再按ANSI编码显示文字.
至于为什么USART_ReceiveData会返回16位整数,因为数据为有可能被配置为9位,所以8位当然不够用了.
回复

使用道具 举报

2

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-1-28
在线时间
44 小时
发表于 2017-12-4 15:36:00 | 显示全部楼层
就记住一个。串口线上一次就发送一个字节,8个bit/
这是千真万确的。
回复

使用道具 举报

34

主题

388

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4081
金钱
4081
注册时间
2012-10-21
在线时间
642 小时
发表于 2017-12-4 23:11:11 | 显示全部楼层
这个容易,之前做过NRF24L01的,自己设计一个上位机,传输汉字到LCD12860
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 02:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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