thyewfty 发表于 2017-10-3 10:44:28

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; // 读取接收到的数据   
      }

}


thyewfty 发表于 2017-10-3 10:54:17

void UartTx(unsigned char ch)   
{   
    while(!TXSTAbits.TRMT);   
    TXREG = ch;   
    while(!PIR1bits.TXIF);   
}
页: [1]
查看完整版本: pic18f4520 串口