大家好,占用大家宝贵时间请指点。
主机传送,用串口助手接收正常的。在接收端似乎是ASCII码的hex,请教各位,如何在从机端才能分离出110这个数字在数码管显示出来。
传送代码如下:
unsigned int nbt=110;
unsigned int nct=10;
unsigned int ndt=20;
unsigned int net=140;
i=Read_key(); //读按键值
if(i==7)
{
memset(num, 0, sizeof(char)*18);
while(Read_key()==i); //等待按键释放
Write_DATA(0,tab[2]);
sprintf(num,"time%d\n",nbt);
SendString(num);
delay(100);
}
在接收端接收到time110;现在time可以正常分离判断,110分离不了,请教各位,如何才能分离出110这个数字在数码管显示出来。
接收端代码:
- unsigned char Uart_recd_data(void){
- static char str[10];
- unsigned char i,temp;
- if(USART_RX_STA) {
- for(i=0;i<Data_Length;i++)
- {
- str[i]=USART_RX_BUF[i];
- }
- USART_RX_STA=0;//接收完毕
- temp=0;
- if(strstr(str,"time")) {
- for(i=5;i<8;i++) {
- temp=(char)temp*10+(str[i]-30);
- }
- }
- ES=1; }
- return temp;
- }
- void main{
- while(1)
- {
- temp = Uart_recd_data();
- num[0] = temp/100;
- num[1] = temp/10%10;
- num[2] = temp %10;
- delay(1000);
- Write_DATA(0,tab[num[0]]);
- Write_DATA(2,tab[num[1]]);
- Write_DATA(4,tab[num[2]]);
- }
- }
复制代码
|