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

2024-12-12 23:49:10
推荐回答(3个)
回答1:

我估计问题出在中断上~~~电脑传给单片机用的应该是uart吧,是通过中断机制完成的。
首先你所用的缓存不能是char型,应该用static char,防止编译器把你这个变量给优化了。
其次你一定要给12864屏与串口传输的逻辑关系弄好,要知道在单片机刷屏时跳中断是很容易出现乱码的。最好是在上位/超级终端/串口调试助手 发送完数据后带一个数据结尾,单片机收到结尾标识符时暂时关闭所有中断在刷屏。
还有你发送的汉字编码应该是gbk编码(windows貌似默认,主要是一般12864支持的汉字是这个编码的。)
最后要是都不好使,估计你用了不带汉字编码库的12864(当然,一般能显示汉字就不会~~~~)

回答2:

一个汉字是两个字节,直接给DPTR,或uint整型变量付汉字的话只会取出这个汉字ASCII码的一半(高8位还是低8位忘记了)DPTR或变量的低8位付上,高8位为ffh,所以单片机要判断接收的汉字只能通过取表判断,如果想给DPTR付上正确的汉字ASCII码可以用二进制码的形式:db XX,'字' XX是指令MOV DPTR,#的机器码,也是个16进制数,在程序一开始打上MOV DPTR,#0000H,编译一下,在看一下返汇编,0000前面的数就是了。

回答3:

你好!
1、添加串口空间
2、编程完成串口初始化
3、发送有效数据
4、单片机接收并分析数据