亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 如何將變量值轉字符串形式在上位機顯示? [打印本頁]

作者: LAW1100    時間: 2024-12-19 20:54
標題: 如何將變量值轉字符串形式在上位機顯示?
在不使用printf()函數情況下,用SBUF形式將變量值轉字符串在上位機顯示?第一次使用接觸,請各位大佬們指點下:例如:將ADC讀取的數字值在串口發上位機顯示
     unsigned int  temp=0;
    unsigned char sum=123;
      temp=ADC_read();
     SBUF=sum;
    while(!TI);
    TI=0;
    DelayMs(1000);
這樣在上位機顯示HEX格式“FB”,而不是123




作者: xiaobendan001    時間: 2024-12-20 07:30
直接發個INT,讓上位機自己處理不行嗎?
作者: devcang    時間: 2024-12-20 09:02
上位機是電腦,功能強大,再將hex轉換成dec,就是了,,,,每種編程語言都可做到的,如java Integer.parseInt("hex string", 16)
作者: Graves    時間: 2024-12-20 09:11
轉換一下再打印,例如打印變量是123,轉字符串就要串口發3個數值'1''2''3'
    SBUF='1';while(!TI);TI=0;
    SBUF='2';while(!TI);TI=0;
    SBUF='3';while(!TI);TI=0;
也就是寫個函數把變量的百位十位個位提取出來轉ascii后再依次發送
作者: zhuls    時間: 2024-12-20 10:11
mcu處理一些本地數據是可以的,但上位機處理數據能力遠勝MCU,所以一些數值轉換還是放在上位機這邊更好。特別是與MCU已經斷聯的數據。
作者: LAW1100    時間: 2024-12-20 14:04
有的是用sprintf函數轉成字符串后再從串口發送,如:unsigned char str[5];
unsigned char sum=123;
sprintf(str,"%d\r\n,sum);
sedstring(str);//從串口發送上位機
作者: LAW1100    時間: 2024-12-20 20:40

void UartSend(char dat)
{
    while (!TI);
    TI = 0;
    SBUF = dat/100;
         while (!TI);
    TI = 0;
        SBUF=dat/10%10;
         while (!TI);
    TI = 0;
        SBUF=dat%10;
}
UartSend(sum);

作者: LAW1100    時間: 2024-12-21 08:05
上位機顯示不對
作者: Y_G_G    時間: 2024-12-21 09:14
單片機如果片上資源多的話
sprintf是相對好用的函數
對于要發送給上位機的數據,是要處理一下的,要么是用協議,要么是自己加一個起始和結束符,不然,數據容易亂
直接發8位變量值是簡單,但如果是浮點型呢?16位數據燈呢?所以,還是用sprintf相對好點
作者: LAW1100    時間: 2024-12-21 09:38
串口助手顯示會亂碼
作者: LAW1100    時間: 2024-12-21 20:29
已經弄好,多謝各位!




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1