|
大家好,占用大家寶貴時(shí)間請(qǐng)指點(diǎn)。
主機(jī)傳送,用串口助手接收正常的。在接收端似乎是ASCII碼的hex,請(qǐng)教各位,如何在從機(jī)端才能分離出110這個(gè)數(shù)字在數(shù)碼管顯示出來(lái)。
傳送代碼如下:
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;現(xiàn)在time可以正常分離判斷,110分離不了,請(qǐng)教各位,如何才能分離出110這個(gè)數(shù)字在數(shù)碼管顯示出來(lái)。
接收端代碼:
- 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]]);
- }
- }
復(fù)制代碼
|
|