qqtfh 发表于 2021-3-29 18:57

HC89S105串口的坑

本帖最后由 芯圣电子官方QQ 于 2023-7-25 11:15 编辑

移植一个STM8S003的程序到HC89S105上。因为之前有用过HC89S03,就想当然地认为都是同样是51系列的芯片,寄存器操作应该也是一样的。唉大意了。
HC89S003的外观功能引脚映射寄存器是这样的

就是说,我如果要设置TXD映射到P3.1应该是TXD_MAP=0X31;这非常简单易懂。
然后HC89S105是这样的

HC89S105如果要将TXD映射到P3.1就是TXD_MAP=0x19;奇怪吧。
然后芯圣官网下载的例程却是这样的

TXD_MAP = 0x01;                                                //TXD映射P01
      RXD_MAP = 0x00;                                                //RXD映射P00

一开始,我按照HC89S003的经验设置TXD_MAP,RXD_MAP.始终没串口输出,检查程序,对照例程也没有问题。搞来搞去都是没有输出。无意中查了一下规格书关于TXD_MAP和RXD_MAP的描述,简直是大吃一斤。怎么同一系列的芯片都没有传承的。真坑。
将TXD_MAP和RXD_MAP设置正确后,一切正常。

panxiaoyi 发表于 2021-3-29 23:29

多谢提醒,原来HC89S105的端口映射寄存器不是默认的高4位定端口,低4位定Bit口的,而好像HC89F0541的高4位是定端口,如P1、P2等,低4位定Bit口的,如 n.7、n.6

qqtfh 发表于 2021-3-30 09:21

panxiaoyi 发表于 2021-3-29 23:29
多谢提醒,原来HC89S105的端口映射寄存器不是默认的高4位定端口,低4位定Bit口的,而好像HC89F0541的高4位 ...

嗯嗯,关键是HC89S105的官网例程拿P01和P00举例,也让我误以为HC89S105会像HC89S003一样,是高4位定端口,低4位是定bit位的。细细想想官网例程的赋值也是没错的,只是拿P00和P01举例不够典型,没有体现出HC89S105的区别。

单片小菜 发表于 2021-4-1 16:32

我在使用别的芯片的时候,也遇到过类似的问题,不知道怎么解决。

里面有晴雨 发表于 2021-4-1 17:37

感谢楼主的分享,我暂时还没有遇到过。

uiint 发表于 2021-4-2 21:28

      

gygp 发表于 2021-4-2 21:28

这个有什么区别呢

chenci2013 发表于 2021-4-2 21:29

STM8S003兼容吗

biechedan 发表于 2021-4-2 21:29

谢谢楼主提醒的。   

wangdezhi 发表于 2021-4-2 21:29

51系列的芯片不错

isseed 发表于 2021-4-2 21:30

HC89S03怎么样

xietingfeng 发表于 2021-4-2 21:30

了解一下。   

suzhanhua 发表于 2021-4-2 21:31

映射不一样了吗

mituzu 发表于 2021-4-2 21:31

STM8S003这个使用过

hellosdc 发表于 2021-4-2 21:31

程序移植的时候需要注意什么呢

mituzu 发表于 2021-4-2 21:32

STM8S003跟这个有区别吗

suzhanhua 发表于 2021-4-2 21:32

需要修改哪里呢   

xietingfeng 发表于 2021-4-2 21:32

速度可以到多少呢   

isseed 发表于 2021-4-2 21:32

这个跟什么芯片兼容呢   

wangdezhi 发表于 2021-4-2 21:32

以后学习一下吧。   
页: [1] 2 3
查看完整版本: HC89S105串口的坑