打印
[其它应用]

内部晶振不稳定

[复制链接]
4959|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2021-8-14 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只要确认串口能工作。T2波特率发送器,串口工作方式1,代码如下。
时钟初始化
void ClockInit (void)
{
      uint16 i;

     CLKCON &= 0x9F;                                 // 不分频
      CLKCON |= 0x08;                                 // 打开高频振荡器
      for (i = 0; i < 1000; i++);                     // 延时2ms以上
      CLKCON |= 0x04;                                 // 选择内部16.6MHz高频振荡器
}

串口初始化
void UartInit (void)
{
      P1CR = 0x04;
      P1PCR = 0x02;
      P1 |= 0x04;
      TR2 = 0;
      T2MOD = 0x80;
      T2CON = 0x30;
      PCON = 0x00;
      SCON = 0x50;
      TH2 = 0xFF;
      TL2 = 0xCA;
      RCAP2H = 0xFF;
      RCAP2L = 0xCA;
      TR2 = 1;
}

发生一字节函数
void UartSendOne (uint8 dat)
{
      SBUF = dat;
      while (TI == 0);
      TI = 0;
}


主程序

     while (1)
      {
          UartSendOne('z');
      }

串口调试助手没有任何反应:
是不是内部晶振不稳定?

使用特权

评论回复
沙发
songqian17| | 2021-8-14 21:30 | 只看该作者
IO口配置错误?

使用特权

评论回复
板凳
tian111|  楼主 | 2021-8-14 21:32 | 只看该作者
啊? 不是定时器、串口的寄存器配置错误?

使用特权

评论回复
地板
gongche| | 2021-8-14 21:34 | 只看该作者
我觉得发送函数有问题

使用特权

评论回复
5
chenjunt| | 2021-8-14 21:35 | 只看该作者
有仿真器么?

使用特权

评论回复
6
chenho| | 2021-8-14 21:41 | 只看该作者
while (TI == 0); 后面加一个断点试试?

使用特权

评论回复
7
happy_10| | 2021-8-14 21:44 | 只看该作者
配置没有办法看。

使用特权

评论回复
8
bqyj| | 2021-8-14 21:46 | 只看该作者
不知道哪颗IC

使用特权

评论回复
9
wenfen| | 2021-8-14 21:48 | 只看该作者
应该不是不稳的的问题吧

使用特权

评论回复
10
tian111|  楼主 | 2021-8-14 21:55 | 只看该作者

IO配置OK;
Uart好像也行的,timer2也行啊

使用特权

评论回复
11
xxrs| | 2021-8-14 21:57 | 只看该作者
嗯,你用示波器看看有否波形?

使用特权

评论回复
12
tian111|  楼主 | 2021-8-14 21:59 | 只看该作者
哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
13
勇敢的大白菜| | 2021-9-6 10:16 | 只看该作者
还是建议楼主使用外部的晶振,外部的晶振相对而言还是稳定一些的。
真的是这样的。

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝