PIC18f8772 串口通讯
时间:11-11
来源:互联网
点击:
- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口接收
- ** 说明:轮询方式
- ** 时间:2012-5-28 Lzy
- **
- *****************************************************/
- #include
- /* 串口初始化 */
- voidUartInit(void)
- {
- RCSTA1bits.SPEN=1;// 串口使能
- TRISCbits.TRISC7=1;// 异步串行接收数据输入
- TRISCbits.TRISC6=0;// 异步和同步主模式,TRISC<6> 零(= 0)
- // TXSTA1:发送状态和控制寄存器
- TXSTA1bits.SYNC=0;// 异步模式
- TXSTA1bits.TX9=0;// 选择8 位发送
- TXSTA1bits.TXEN=1;// 禁止发送
- TXSTA1bits.BRGH=1;// 高速
- TXSTA1bits.TXEN=1;// 使能发送
- // RCSTA1:接收状态和控制寄存器
- RCSTA1bits.RX9=0;// 选择8 位接收
- RCSTA1bits.CREN=1;// 使能接收器
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16=0;// 8位波特率发生器——SPBRGHx 和SPBRGx
- SPBRG1=25;
- TRISF=0;
- }
- voidmain()
- {
- UartInit();
- if(PIR1bits.RC1IF)// 已接收数据
- {
- PORTF=RCREG1;// 读取接收到的数据
- }
- }
- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口发送
- ** 说明:
- ** 时间:2012-5-28 Lzy
- **
- *****************************************************/
- #include
- /* 串口初始化 */
- voidUartInit(void)
- {
- RCSTA1bits.SPEN=1;// 串口使能
- TRISCbits.TRISC7=1;// 异步串行接收数据输入
- TRISCbits.TRISC6=0;// 异步和同步主模式,TRISC<6> 零(= 0)
- // TXSTA1:发送状态和控制寄存器
- TXSTA1bits.SYNC=0;// 异步模式
- TXSTA1bits.TX9=0;// 选择8 位发送
- TXSTA1bits.TXEN=1;// 禁止发送
- TXSTA1bits.BRGH=1;// 高速
- TXSTA1bits.TXEN=1;// 使能发送
- // RCSTA1:接收状态和控制寄存器
- RCSTA1bits.RX9=0;// 选择8 位接收
- RCSTA1bits.CREN=1;// 使能接收器
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16=0;// 8位波特率发生器——SPBRGHx 和SPBRGx
- SPBRG1=25;
- TRISE=0xff;
- TRISA=0;
- }
- voidmain()
- {
- UartInit();
- if(TXSTA1bits.TRMT)// 发送完毕
- {
- TXREG1=PORTE;// 发送数据
- }
- }
PIC18f8772串口通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)