STC15系列单片程序移植到STC8A8K系列时串口不能通信的问题

STC15系列单片程序移植到STC8A8K系列时串口不能通信的问题:

产品升级改型,需要将原来使用的STC15系列单片机改为STC8A8K64S4系列,其中用到串口COM1,COM2,串口COM1作MODBUS口,兼调试口。刚开始想这也没有什么,应该直接转换就可以,改为STC8的头文件,然后直接下载,结果程序下载后,没有串口输出。立马去查STC8系列的说明,关于串口部分的STC官方的说明如下:

STC8A8K64S4A12-D版/STC8F8K64S4A12-D版芯片使用注意事项:
. 串口接收需要2个停止位(包括串口1, 串口2, 串口3, 串口4)
. 当串口1使用工作于模式2的定时器1作为串口的波特率发生器时,
SMOD(PCON.7)位必须置1,即必须波特率加倍串口1才可正常工作

恰巧我使用的时串口1,模式2,定时器1,根据说明赶紧把波特率计算程序改为波特率加倍串口1才可正常工作,修改如下:
PCON |= 0x80; //波特率加倍
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
SCON = 0x50;
TMOD |=0x20; //T1工作2态
TH1=t1_cnt; //0xfd 基准为9600
TL1=t1_cnt;
TR1=1;
根据编译修改的程序,下载测试,串口依然没有输出,反复检查更改的部分,没有问题。困惑,单片机程序设计以来,这么成熟的程序还有问题,根据对STC单片机的了解,还有其他猫腻,于是再查PDF,或得信息:
关于此芯片的重要说明:
所有串口(包括串口1、串口2、串口3、串口4)的发送端口均需要
软件设置为强推挽输出模式或者外接3~5K的上拉电阻

更改P3.0,P3.1的配置:
P3M1 = 0x00; //0000 0000
P3M0 = 0x03; //0000 0011
根据编译修改的程序,下载测试,串口通信正常。以此为记。2021.3.19

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cjmsea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值