电脑如何通过串口发送汉字给单片机?

本人想用电脑发送汉字然后显示在12864上,但试了N次都是乱码,如果用单片机给电脑发送汉字就没问题,哪位能简单的说说如何用发送汉字到单片机上??... 本人想用电脑发送汉字然后显示在12864上,但试了N次都是乱码,如果用单片机给电脑发送汉字就没问题,哪位能简单的说说如何用发送汉字到单片机上?? 展开
 我来答
匿名用户
2013-06-08
展开全部
我估计问题出在中断上~~~电脑传给单片机用的应该是uart吧,是通过中断机制完成的。
首先你所用的缓存不能是char型,应该用static char,防止编译器把你这个变量给优化了。
其次你一定要给12864屏与串口传输的逻辑关系弄好,要知道在单片机刷屏时跳中断是很容易出现乱码的。最好是在上位/超级终端/串口调试助手 发送完数据后带一个数据结尾,单片机收到结尾标识符时暂时关闭所有中断在刷屏。
还有你发送的汉字编码应该是gbk编码(windows貌似默认,主要是一般12864支持的汉字是这个编码的。)
最后要是都不好使,估计你用了不带汉字编码库的12864(当然,一般能显示汉字就不会~~~~)
匿名用户
推荐于2017-07-31
展开全部
一个汉字是两个字节,直接给DPTR,或uint整型变量付汉字的话只会取出这个汉字ASCII码的一半(高8位还是低8位忘记了)DPTR或变量的低8位付上,高8位为ffh,所以单片机要判断接收的汉字只能通过取表判断,如果想给DPTR付上正确的汉字ASCII码可以用二进制码的形式:db XX,'字' XX是指令MOV DPTR,#的机器码,也是个16进制数,在程序一开始打上MOV DPTR,#0000H,编译一下,在看一下返汇编,0000前面的数就是了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yi...2@163.com
2017-07-31 · 超过21用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:26万
展开全部
你好!
1、添加串口空间
2、编程完成串口初始化
3、发送有效数据
4、单片机接收并分析数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式