1、代码如下:
#include <HT66F2390.h>
typedef unsigned long u32;
typedef unsigned short u16;
#define fH 8000000
#define BR 19200 //波特率
void Delayms(u16 del)
{ u16 i;
for(i=0;i<del;i++) GCC_DELAY(2000);
}
//发送一个单字符
void send_char(char s)
{
_txr_rxr0=s;
while(!_txif0);
}
//发送一个字符串,注意如果发送的是字符数组,末尾必须加上'\0',否则将会出错
void send_buff(char *s)
{
while(*s)
{
send_char(*s);
s++;
}
}
//初始化串口0
void inituart(){
_wdtc=0b10101111; //关闭看门狗
_pas1=0b11000000; //PA7为TX0功能、PA6为RX0功能
_u0cr1=0b10000000; //使能UART0,8-bit数据传输,关闭奇偶校验功能,1位停止位,不发送暂停字。
_u0cr2=0b11100100; //使能发送器,使能接收器,高速波特率,关闭地址检测功能,关闭RX0唤醒功 能,使能接收器中断功能,关闭发送器空闲中断,关闭发送器已空中断
_brg0=fH/((u32)16*BR)-1; //配置波特率
_ur0e = 1; //开启中断标志位
_mf5e=1;
_emi=1;
}
//从串口接收一个字符串,存入数组中,停止符为c,注:接收到的串口数据最后,必须要加停止符号c,才能正确接收,并存入字符数组
int get_buff(char *rbuff,char c){
int data_count=0;
char rdata;
while(1){
while(!_rxif0);
rdata =_txr_rxr0;
if(r