本帖最后由 yzwzfyz 于 2019-5-20 12:00 编辑 ES只是控制中断是否允许,但它不能控制串口是否工作,只要串口是工作的(这是硬件决定的),则TI就会在工作过程中被置1,它与ES无关。 但TI=1 之后是会否引起中断却受控于ES。 |
第一个串口调试软件接受不了汉字,估计是这个程序本身就没有考虑接受的数据中包含汉字数据。对串口而言,收发的都是单纯的16进制数据,他并不知道这个数据是指令、数据;还是字母、汉字。需要两边的程序代码解析。加入解析功能的,自然会显示汉字。这就好比有些没有汉字字库的LCD12864,你发给它汉字,因为不能识别,是显示不了的。有汉字字库的,收到特殊数据的,汉字的两个字节数据,16进制值>255,根据编码值,去字库里找匹配的点阵数据,显示到液晶上。也就是说,液晶上显示的字符,都是通过计算编码值,找到对应的点阵数据,Bit位上有值的,那个点就显示,所有该现实的点都显示出来,就形成了字母、数字,汉字。 |
suncat0504 发表于 2019-5-30 19:55 哦哦,好的我明白了,多谢大佬指点 |
TI是数据发送完成后产生的标志,对51单片机,当你向SBUF发送完一字节数据,单片机会自动通过TX管脚向外发送数据,发送完成后,SBUF数据清空,同时使TI=1,表示数据发送完成,好让你继续发送下一个字节。 |
yzwzfyz 发表于 2019-5-20 08:29 好的,我明白了。还有就是汉字为什么第一个串口调试软件发送不了呢? |
汉字其实就是2个字节的数据而已 |