电源设计技术实用资料点击免费获取>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于PIC单片机串口通信的一个问题,请各位大侠指点!

共5条 1/1 1 跳转至

关于PIC单片机串口通信的一个问题,请各位大侠指点!

助工
2020-02-11 20:39:02    评分


我用的是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;

}


但是始终得不到正确的数据。应该是波特率不对吧,不知道如果配置了。请各位指教!





关键词: PIC16F688     Microchip          串口    

工程师
2020-02-11 20:48:41    评分
2楼

一般MCU的内部时钟误差比较大。做通信的话最好校准或检查一下误差是否太大。


助工
2020-02-11 21:11:42    评分
3楼

楼主搞出了吗,我的也没有搞出来,我的PIC单片机是PIC16F73,估计差不多。


助工
2020-02-11 23:36:13    评分
4楼

波特率设置错了修改一下


专家
2020-02-12 09:12:06    评分
5楼

更换其它家的单片机


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]