独闷闷网

标题: PIC串口初始化示例程序。 [打印本页]

作者: jianhong_wu    时间: 2014-10-23 16:09
标题: PIC串口初始化示例程序。
hww-广州:
给个PIC串口初始化例程序给你吧,我经常用到了,只用改一下宏,很方便的:
  1. //1、头文件
  2. // CPU 工作时钟 4MHz
  3. #define CPU_FOSC             4000000

  4. // 波特率 9600 bit/s
  5. #define USART_BAUD           2400

  6. #define MS_DLY_COUNT(n)    (n / BASE_TIME)

  7. /* 函数名称:USART_BUAD_LOAD()
  8. * 输入参数:CPU频率 波特率
  9. * 输出参数:无
  10. * 功能描述:加载串口波特率宏函数
  11. */
  12. #define USART_BUAD_LOAD(FOSC, BAUD)      \
  13. {                                        \
  14.     SYNC = 0;                            \
  15.     BRGH = 1;                            \
  16.     SPBRG  = (U8)(FOSC / BAUD / 16 - 1); \
  17. }
  18. ////////////////////////////
  19. //2、初始函数:
  20. /* 项目名称:usart_mode_init()
  21. * 输入参数:无
  22. * 输出参数:无
  23. * 功能简介:USART 工作模式设置
  24. */
  25. void usart_mode_init(void)
  26. {
  27.     // USART 加载工作波特率
  28.     // 宏函数生成高效率代码
  29.     USART_BUAD_LOAD(CPU_FOSC, USART_BAUD);

  30.     // 串口通信模式为8 bits
  31.     TX9  = 0;
  32.     RX9  = 0;

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

  36.     // 串口接收中断触发使能
  37.     RCIE = 1;
  38.         //
  39.         TXIE=0;
  40.     // 外设中断触发工作使能
  41.     PEIE = 1;

  42.     // 打开串口异步通信模块
  43.     SPEN = 1;
  44.    
  45.      // 使能全局中断服务程序
  46.     ei();
  47. }
复制代码




作者: 华菲    时间: 2014-10-23 17:44
好东西,值得收藏




欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2