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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3159|回復: 8
打印 上一主題 下一主題
收起左側

請教STM32單片機串口發送數據顯示亂碼問題

[復制鏈接]
跳轉到指定樓層
樓主
50黑幣
使用stm32c8t6最小系統板,連接外部時鐘模塊,讀取外部時鐘模塊的時間數據(16進制數據),將得到的時間數據從串口發回到串口助手,但是在串口助手上16進制顯示正常,非16進制顯示就是框框,如圖,代碼如下,怎樣顯示正常的時間
         if(inquiries_mewtime_STA!=0)//發送時間問詢指令
                {
                        second=Read1307(0x00);//問詢秒時間指令
                        minute=Read1307(0x01);//問詢分時間指令
                        hour=Read1307(0x02);
                        week=Read1307(0x03);
                        day=Read1307(0x04);
                        month=Read1307(0x05);
                        year=Read1307(0x06);        
                        UART1SendByte(year);UART1SendByte(month);UART1SendByte(day);//發送時間指令
                        UART1SendByte(hour);UART1SendByte(minute);UART1SendByte(second);//發送時間指令
                        delay_ms(1000);
                        inquiries_mewtime_STA = 0;//發送時間問詢指令復位                                                
                }

其中的UART1SendByte如下
/*發送一個字節數據*/
void UART1SendByte(unsigned char SendData)
{      
    USART_SendData(USART1,SendData);
    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
    USART_ClearFlag(USART1,USART_FLAG_TC);        
}  


1.png (2.62 KB, 下載次數: 31)

1.png

2.png (1.58 KB, 下載次數: 40)

2.png

最佳答案

查看完整內容

如果只是串口通訊 ASCII用sprintf函數簡單char k[12];//數組長度自己根據要顯示多少位調整 unsigned char a,i=0; sprintf(k,"%d",dat); for(a=0;k[a]!='\0';a++) { UART1SendByte(Page,Start_SEG,k[a]); //發送一個字節 }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:401564 發表于 2022-7-31 17:32 | 只看該作者
如果只是串口通訊
ASCII用sprintf函數簡單char   k[12];//數組長度自己根據要顯示多少位調整                                                        
unsigned char a,i=0;
sprintf(k,"%d",dat);                                               
for(a=0;k[a]!='\0';a++)                 
        {       
                UART1SendByte(Page,Start_SEG,k[a]); //發送一個字節
        }

回復

使用道具 舉報

板凳
ID:883242 發表于 2022-7-31 21:12 | 只看該作者
你又沒有轉換成ASCII碼,當然是16進制顯示正常,ASCII碼是亂碼了。
回復

使用道具 舉報

地板
ID:1039954 發表于 2022-8-1 08:37 | 只看該作者
有沒有可能是波特率的問題啊
回復

使用道具 舉報

5#
ID:248705 發表于 2022-8-1 08:38 | 只看該作者
本帖最后由 祖國的花朵 于 2022-8-1 08:41 編輯

像樓上說的的,轉一下
  1. <div class="blockcode"><blockquote>UART1SendByte(year / 10 + '0');
  2. UART1SendByte(year% 10 + '0');
復制代碼

回復

使用道具 舉報

6#
ID:1041056 發表于 2022-8-1 08:42 | 只看該作者
Hephaestus 發表于 2022-7-31 21:12
你又沒有轉換成ASCII碼,當然是16進制顯示正常,ASCII碼是亂碼了。

怎么轉換成asii碼請問
回復

使用道具 舉報

7#
ID:962286 發表于 2022-8-1 10:16 | 只看該作者
本帖最后由 MCU_FANS 于 2022-8-1 10:18 編輯
danpianjii1 發表于 2022-8-1 08:42
怎么轉換成asii碼請問

見過的串口助手,都有得設置接收格式是HEX還是ASCII:


另外:數值轉成ASCII對照一下ASCII表,然后對應加一下偏移即可。或者用打印,就不用轉了。
回復

使用道具 舉報

8#
ID:514901 發表于 2022-8-1 10:29 | 只看該作者
數值轉ASCLL碼,最簡單的方式是用sprintf函數
回復

使用道具 舉報

9#
ID:1041123 發表于 2022-8-1 11:36 | 只看該作者
還有一種可能是TTL的參考電平不一致
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91热在线 | 日本粉嫩一区二区三区视频 | 国产一区二区精品在线 | 国产精品国产三级国产播12软件 | 蜜桃av一区二区三区 | 精品一区二区三区四区五区 | 国产成人精品一区二区三区视频 | 一级片视频免费 | 日韩欧美国产精品一区 | 91资源在线观看 | 国产精品亚洲视频 | 精品91久久 | 日韩欧美视频在线 | 夜夜干夜夜操 | 亚洲成人一区 | 久久亚洲一区二区 | 99视频网 | 国产欧美在线一区二区 | 午夜影院在线观看版 | 91福利电影在线观看 | 国产高清久久久 | 看一级黄色毛片 | 91精品国产综合久久久久久丝袜 | 欧洲av在线 | 在线观看欧美日韩视频 | 国产激情视频网站 | 国产高清免费视频 | 日韩av一区二区在线观看 | 国产欧美精品 | 国产精品成人国产乱一区 | 国产视频三级 | 久久99久久98精品免观看软件 | 日本精品视频 | 国产精品69久久久久水密桃 | 日韩国产一区二区三区 | 一级欧美一级日韩片 | 亚洲成人精品免费 | 欧美久久一区 | 国产一区二区三区四区三区四 | 玖玖综合网 | 久草网视频 |