tang470793988 发表于 2011-11-18 13:13:51

关于PIC串口通信的问题,请各位大侠指点

我用的是PIC16F688,我要使用内部晶振作为系统时钟,串口该如何配置。我的的时钟配置如下:
void InitClok()
{
        OSCCON=0x61;
}
串口配置如下:
//**********串口初始化***********/
void InitUart()
{
    RCSTA = 0X90;      //八位数据接收,连续接收
    TXSTA = 0x24; //设定TXSTA寄存器。
    SPBRG = 0x19; //4MHZ, BRGH=1, 9600BPS
    TXEN=1;         //发送允许
    CREN=1;        //接受数据允许
    RCIE=1;        //接收中断使能
    GIE=1;                //总中断允许*/
}
发送字节函数如下:
/**************************************************/
void TxData (uchar x)
{
        TXREG=x;                        // write data x to SBUF
        while(TRMT==0);
                TRMT=1;
}
但是始终得不到正确的数据。应该是波特率不对吧,不知道如果配置了。请各位指教!

liumaojun_cn 发表于 2011-11-18 13:16:17

内部时钟误差比较大。做通信的话最好校准。

tang470793988 发表于 2011-11-21 12:19:27

能给个具体的配置吗?就用内部时钟

pyh162508 发表于 2011-11-23 17:38:24

回复【楼主位】tang470793988
-----------------------------------------------------------------------

内部时钟部分能详细描述一下吗?

tang470793988 发表于 2011-12-6 09:39:30

回复【4楼】pyh162508
-----------------------------------------------------------------------

4M

JZcrystalwlh888 发表于 2020-2-11 17:34:16

楼主搞出了吗,我的也没有搞出来,我的PIC单片机是PIC16F73
页: [1]
查看完整版本: 关于PIC串口通信的问题,请各位大侠指点