pic18f4520 串口
#include "htc.h"picc 40M
void ComIni(void)
{
SPEN = 1; // 串口使能
TRISC7 = 1; // 异步串行接收数据输入
TRISC6 = 0;// 异步和同步主模式,TRISC<6> 零(= 0)
SYNC = 0; // 异步模式
TX9 = 0; // 选择8 位发送
TXEN = 1; // 禁止发送
BRGH = 1; // 高速
TXEN = 1; // 使能发送
// RCSTA1:接收状态和控制寄存器
RX9 = 0; // 选择8 位接收
CREN = 1; // 使能接收器
SPBRG = 20; //38400波特率
// 外设中断允许寄存器1
RCIE = 1; // 允许EUSART 接收中断
INTCONbits.GIE = INTCONbits.PEIE = 1; // 中断控制寄存器
}
void interrupt ISR(void)
{
unsigned char Byte = 0;
if(RCIF) // 已接收数据
{
RCIF = 0;
Byte = RCREG; // 读取接收到的数据
}
}
void UartTx(unsigned char ch)
{
while(!TXSTAbits.TRMT);
TXREG = ch;
while(!PIR1bits.TXIF);
}
页:
[1]