一、深化了解字符串的问题
char str11[]=”a”;
P1=strlen(str11);
上面的一个是一个测验字符个数的实例,用仿真就能够看到成果。成果是1。也便是说字符’’是不会被计入的。那么咱们就能够经过此函数来分辩是否是字符和字符串。当然假如字符串是一个字符的话,那么便是咱们上面的那个状况了,会直接被作为一个数看待。
注:上位机发过来的数据全部是字符串格局的。
二、串口中止问题
先看下面的程序。
void UART_SendByte(unsigned char dat)
{
SBUF=dat;
while(!TI) ;//等候发送结束
TI=0;
}
这个程序便是一个简略的串口发送字符的程序,为了能够完成主动发送和接纳,咱们剖析一下它。咱们要一起完成接纳,有接纳那么就要有串口中止,经过串口中止到达接纳数据的意图。但是当ES=1,程序并不会像咱们想的那样运转,当履行完SBUF=dat后,程序开端等候,大概是5个时钟周期后,程序并没有直接运转TI=0这句,而是,由于缓冲区中的字符而直接跳转到串口中止函数中,乃至呈现死循环这样的状况。
为了避开这种状况,咱们引入了下面的程序:
void UART_SendByte(unsigned char dat)
{
SBUF=dat;
ES=0;
while(!TI) ;
TI=0;
ES=1;
}
或许写做一个中止处理函数,空的函数也能够:
void Com_INT() interrupt 4//串口中止
{
}