久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1762|回復(fù): 10
收起左側(cè)

單片機(jī)串口接收端數(shù)據(jù)分離問(wèn)題

[復(fù)制鏈接]
ID:705846 發(fā)表于 2024-5-12 14:05 | 顯示全部樓層 |閱讀模式
大家好,占用大家寶貴時(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);
                }


1q.JPG


在接收端接收到time110;現(xiàn)在time可以正常分離判斷,110分離不了,請(qǐng)教各位,如何才能分離出110這個(gè)數(shù)字在數(shù)碼管顯示出來(lái)。
接收端代碼:
  1. unsigned char Uart_recd_data(void){
  2. static char str[10];
  3. unsigned char i,temp;
  4. if(USART_RX_STA)        {
  5. for(i=0;i<Data_Length;i++)
  6. {
  7. str[i]=USART_RX_BUF[i];
  8. }
  9. USART_RX_STA=0;//接收完畢

  10. temp=0;

  11. if(strstr(str,"time"))                 {
  12. for(i=5;i<8;i++)                                {
  13. temp=(char)temp*10+(str[i]-30);
  14. }
  15. }
  16. ES=1;        }
  17. return temp;
  18. }


  19. void main{
  20.         while(1)
  21.         {
  22.                 temp = Uart_recd_data();
  23.                 num[0] = temp/100;        
  24.                 num[1] = temp/10%10;
  25.                 num[2] = temp %10;                                
  26.                 delay(1000);
  27.                 Write_DATA(0,tab[num[0]]);
  28.                 Write_DATA(2,tab[num[1]]);
  29.                 Write_DATA(4,tab[num[2]]);

  30.         }
  31. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

ID:237471 發(fā)表于 2024-5-12 15:58 | 顯示全部樓層
如果數(shù)據(jù)長(zhǎng)度是固定的,用一個(gè)數(shù)組接收數(shù)據(jù),把time作為數(shù)據(jù)頭,找到數(shù)據(jù)頭,第五位就是你要的
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-5-12 16:17 | 顯示全部樓層
lxh2002 發(fā)表于 2024-5-12 15:58
如果數(shù)據(jù)長(zhǎng)度是固定的,用一個(gè)數(shù)組接收數(shù)據(jù),把time作為數(shù)據(jù)頭,找到數(shù)據(jù)頭,第五位就是你要的

樓主意思大概是把字符串110變成三個(gè)數(shù)字,1,1,0;
回復(fù)

使用道具 舉報(bào)

ID:705846 發(fā)表于 2024-5-12 16:22 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-5-12 16:17
樓主意思大概是把字符串110變成三個(gè)數(shù)字,1,1,0;

把time110后面的110變成可以計(jì)算的110,然后用數(shù)碼管顯示出來(lái)。
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-5-12 16:29 | 顯示全部樓層
samxon 發(fā)表于 2024-5-12 16:22
把time110后面的110變成可以計(jì)算的110,然后用數(shù)碼管顯示出來(lái)。

ASCII好像是直接減去一個(gè)數(shù)字就變成數(shù)字了吧,好像是0x30,這樣直接拿去顯示就好了吧,不需要再整成一個(gè)變量,再分解BCD碼,多麻煩啊
回復(fù)

使用道具 舉報(bào)

ID:73992 發(fā)表于 2024-5-12 18:08 來(lái)自手機(jī) | 顯示全部樓層
數(shù)字asc碼,110三個(gè)字節(jié)。百位,十位,個(gè)位分別減0x30.百位得到值0x01再乘以100,十位得到值01再乘以10,個(gè)位得到值00。這三個(gè)字節(jié)數(shù)字的和就是可計(jì)算的值。
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2024-5-12 18:38 | 顯示全部樓層
ASCII編碼而已,直接按ASCII判斷就可以了。哪怕有中文,都一樣可以分離出來(lái)。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-5-12 20:12 | 顯示全部樓層
sprintf(%d)的長(zhǎng)度是不固定的,可能是“1”、也可能是“10”,還可能是“110”,那就要從最后的\n開(kāi)始向前分離數(shù)字,直到遇到字母為止。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-5-13 10:24 | 顯示全部樓層
2024-05-13_102322.png
2024-05-13_102344.png

回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2024-5-13 15:32 | 顯示全部樓層
你這句不就是分離的嗎?  for(i=5;i<8;i++)     temp=(char)temp*10+(str[i]-30);
但是有兩個(gè)問(wèn)題:一是,i應(yīng)該從4開(kāi)始;二是,30 是十六進(jìn)制,應(yīng)該用48
回復(fù)

使用道具 舉報(bào)

ID:705846 發(fā)表于 2024-5-15 13:02 來(lái)自手機(jī) | 顯示全部樓層
應(yīng)該是從4開(kāi)始,但就取少一位。沒(méi)有搞明白是怎么回事。必須從5開(kāi)始。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 热re99久久精品国产99热 | 美女精品一区 | 亚洲国产精品自拍 | 精品国产91 | 二区视频 | 日韩欧美国产一区二区三区 | 国产成人啪免费观看软件 | 成人3d动漫一区二区三区91 | 一区二区精品 | 97狠狠干 | 黄色毛片视频 | 国产精品久久久久久久久久久新郎 | 久久网站免费视频 | 九九热免费观看 | 日韩和的一区二区 | 国产99久久精品一区二区永久免费 | 国产一级在线观看 | 精品一区二区三区四区在线 | 亚洲成人av | 欧美成人一区二区三区 | 97成人免费 | 天天澡天天操 | 欧美精品一区在线发布 | 夜色www国产精品资源站 | 亚洲精品久久久久国产 | 成年人视频免费在线观看 | 黄色国产在线播放 | 久久精品国产免费看久久精品 | 国产情侣啪啪 | 日韩中文字幕一区 | 自拍偷拍第一页 | 亚洲一区中文字幕 | 男人的天堂一级片 | 一区二区三区四区免费观看 | 精品国产网 | 97影院在线午夜 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 久久久国产一区二区三区 | 国产999精品久久久久久 | 欧美成年网站 | 秋霞国产 |