[求助] PIC串口调试

shimingyan1992   2016-11-23 15:05 楼主
void uart_init()
{
  TXSTA1&=0X8f;           //    (6)8位数据0,(5)禁止发送0,(4)异步模式0;
  TXSTA1|=0X04;           //    (2)高速,
  RCSTA1|=0x90;           //    (7)使能串口1;(4)使能接受1
  RCSTA1&=0xBF;           //    (6)8位接受0;            
  TXSTA1bits.TXEN=1;      //     使能 发送
  TXSTA1bits.TRMT=1;      //     发送器为空
  BAUDCON1=0x48; //   接收操作处于空闲状态,16 位波特率发生器——SPBR启动看门狗 GH 和SPBRG
  SPBRGH1=0;
  SPBRG1=23;   //  波特率为115200;
}
void delay_ms(uint i)              
{
  uint j;
  for(;i>0;i--)
  for(j=0;j<130;j++);                     
}
void main ()
{
uart_init();
while(1)
{
  TXREG=0x56;
  delay_ms(100);
}
}

晶振用的是11.0592  串口调试 乱码  HEX显示

  • QQ截图20161123150513.png

回复评论 (6)

具体的乱码是什么样子的,截图下,好分辨原因.
点赞  2016-11-23 15:12
什么型号?

另外PIC有专用的延时函数,__delay_ms(),__delay_us()
点赞  2016-11-23 16:09
引用: dingzy_2002 发表于 2016-11-23 15:12
具体的乱码是什么样子的,截图下,好分辨原因.

我换成4M晶振了,9600的波特率还是乱码
点赞  2016-11-23 16:21
QQ截图20161123161528.png
点赞  2016-11-23 16:21
要有示波器,或逻辑分析仪。看看脉宽是多少。你用的是内部时钟还是外部时钟。没看到配置时钟寄存器的语句。应该配置一下。   分频,倍频什么的。    选择内部时钟源,以最高频运行。 改变串口波特率相关寄存器,应该会有变化。     
点赞  2016-11-23 21:44
用的什么单片机,注意手册上分频设置哦
点赞  2016-11-25 21:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复