|
51單片機串口編譯出錯什么問題
..\source\main.c(25): error C100: unprintable character 0xB4 skipped
第25行報錯
#include <reg51.h>
#include "delay.h"
#include "uart.h"
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
void Timer0Init(void);
void main()
{
unsigned char i;
Timer0Init();
UartInit();
EA=1;//打開總中斷
printf("wait for serial communication test.\r\n");
printf("please send a command\r\n");
while(1)
{
if(recv_flag)
{
recv_flag=0;
start_timer=0;//關定時器
sendString(recv_buf);/處理數據
clr_recvbuffer(recv_buf);//清除數據buf
}
}
}
void Timer0Init(void) //1毫秒@11.0592MHz
{
//==AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //設置定時器模式
TL0 = 0x66; //設置定時初值
TH0 = 0xFC; //設置定時初值
TF0 = 0; //清除TF0標志
ET0=1;//打開定時計數器0
TR0 = 1; //定時器0開始計時
}
void timer0_ISR() interrupt 1
{
TR0=0;
if(start_timer==1)
{
recv_timer_cnt++;//1、累加定時時間計數器
if(recv_timer_cnt>MAX_REV_TIME)//2、判斷定時時間是否超過設定的最大閾值,
//超過則說明等待一段時間后沒有新的數據到,
//我們就判斷一包數據接受完畢
{
recv_timer_cnt=0;//3、清除定時計數器 處理數據清楚buffer(放到數據處理之后)
recv_cnt=0;
recv_flag=1;
}
}
TL0 = 0x66; //設置定時初值
TH0 = 0xFC; //設置定時初
TR0=1;
}
|
|