jianhong_wu 发表于 2014-10-23 16:09:09

PIC串口初始化示例程序。

hww-广州:
给个PIC串口初始化例程序给你吧,我经常用到了,只用改一下宏,很方便的:
//1、头文件
// CPU 工作时钟 4MHz
#define CPU_FOSC             4000000

// 波特率 9600 bit/s
#define USART_BAUD         2400

#define MS_DLY_COUNT(n)    (n / BASE_TIME)

/* 函数名称:USART_BUAD_LOAD()
* 输入参数:CPU频率 波特率
* 输出参数:无
* 功能描述:加载串口波特率宏函数
*/
#define USART_BUAD_LOAD(FOSC, BAUD)      \
{                                        \
    SYNC = 0;                            \
    BRGH = 1;                            \
    SPBRG= (U8)(FOSC / BAUD / 16 - 1); \
}
////////////////////////////
//2、初始函数:
/* 项目名称:usart_mode_init()
* 输入参数:无
* 输出参数:无
* 功能简介:USART 工作模式设置
*/
void usart_mode_init(void)
{
    // USART 加载工作波特率
    // 宏函数生成高效率代码
    USART_BUAD_LOAD(CPU_FOSC, USART_BAUD);

    // 串口通信模式为8 bits
    TX9= 0;
    RX9= 0;

    // 串口模块收发工作使能
    TXEN = 1;
    CREN = 1;

    // 串口接收中断触发使能
    RCIE = 1;
        //
        TXIE=0;
    // 外设中断触发工作使能
    PEIE = 1;

    // 打开串口异步通信模块
    SPEN = 1;
   
   // 使能全局中断服务程序
    ei();
}



华菲 发表于 2014-10-23 17:44:04

好东西,值得收藏
页: [1]
查看完整版本: PIC串口初始化示例程序。