ht46ru232 串列埠接收、傳送程式 C語言
#include "HT46RU232.h"
#pragma vector Uart_ISR @0x10 //串列埠中斷入口申明
void Uart_init();
void Uart_send(unsigned char data);
void Uart_ISR();
unsigned char data;
void Delay();
void main()
{
char i;
Uart_init();
i=0;
while(1)
{
for(i=0;i<=100;i++)
{
Uart_send(i);
}
Delay();
// Uart_send('/n');
}
}
void Delay()
{
long i,j;
for(i=0;i<=600;i++)
{
for(j=0;j<=60;j++)
{
_delay(100);
}
}
}
void Uart_init()
{
_ucr1=0x80; //設定BNO,PRT,PREN,STOP位
_ucr2=0xc4; //使能TXEN、RXEN
_brg=12; //設定波特率,高速,8M,9600
_euri=1; //開串列埠中斷
_emi=1; //開總中斷
}
void Uart_send(unsigned char data)
{
unsigned char usr;
usr=_usr;
_txr_rxr=data; //data此處為全域性變數,為待發送資料
_txen=1;
while(!_txif){
}
}
void Uart_ISR()
{
unsigned char i;
_rxen=1;
i=_usr;
data=_txr_rxr;
// Uart_send(data);
if(_perr==1||_nf==1||_ferr==1||_oerr==1) //錯誤檢測
{
i=_usr;
i=_txr_rxr;
}
}