打印

STC12C系列串口调试出错

[复制链接]
5523|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Mindor|  楼主 | 2010-4-3 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的单片机是STC12C5410AD,我设置的波特率是9600bps,可是到了串口调试助手却要求改成4800bps才能勉强把大部分数据接收正确,还有少数乱码。

注:PCON是默认状态,也就是说是工作在12T状态下的。
      串口工作在方式1下。
      应该不是串口转换的问题,换了其他程序没问题。
      应该也不是串口调试助手的问题,换了几个调试助手也没用。
 
/***********************************
**函数名称:ser_init()
**输入参数:无
**输出参数:无
**功能描述:串行口通信初始化
************************************/
void uart_init()
{
TMOD = 0x20;  //定时器1工作方式2
TL1  = 0xfd;  //波特率为9600bps
TH1  = 0xfd;
TR1  = 1;
SM0  = 0;  //串行口通信方式1
SM1  = 1;
REN  = 0;  //禁止串行口接收
ES   = 0;  //关闭串行口中断
}

相关帖子

沙发
歪 歪| | 2010-4-3 10:48 | 只看该作者
用这个工具调试一下,抓的都是原始包,变波特率也不怕。

下载地址:
http://download.cnet.com/ComTrac ... 6892.html?tag=mncol

感觉好别忘了给个review(评论),谢谢!

使用特权

评论回复
板凳
leolle| | 2010-4-3 11:47 | 只看该作者
还是仔细看一下你的TH TL吧,算准确一点

使用特权

评论回复
地板
hyg1984| | 2010-4-3 11:52 | 只看该作者
我用过STC12C506S2,窜口能正常运行啊,而且波特率可以设置得很高。

看了你的初始化,是不是你的波特率计算错了?我记得算波特率的时候有很多方式,有很多计算的,并不是跟STC89C51一样,有什么独立波特率发生器什么的--------建议你认真看看DATASHEET

使用特权

评论回复
5
sipueay| | 2010-4-3 13:36 | 只看该作者
看看你的晶振吧, 是否是11.0592的

使用特权

评论回复
6
Mindor|  楼主 | 2010-4-3 18:31 | 只看该作者
1# Mindor
我知道了~哈哈
用STC-ISP下载的时候默认的时钟源始内部RC振荡器,改成外部的就行了,我是外接晶体振荡器的~

使用特权

评论回复
7
lirunze| | 2010-4-3 19:50 | 只看该作者
STC单片机,到底怎么样啊!

使用特权

评论回复
8
zhiyonghe| | 2010-4-4 09:41 | 只看该作者
STC 的单片机还可以吧?玩过一段时间

使用特权

评论回复
9
zdhlixiang2006| | 2010-4-4 13:21 | 只看该作者
STC的不错啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

413

帖子

1

粉丝