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显示
什么型号?
另外PIC有专用的延时函数,__delay_ms(),__delay_us()
要有示波器,或逻辑分析仪。看看脉宽是多少。你用的是内部时钟还是外部时钟。没看到配置时钟寄存器的语句。应该配置一下。 分频,倍频什么的。 选择内部时钟源,以最高频运行。 改变串口波特率相关寄存器,应该会有变化。