chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

知道STM32串口通信亂碼要怎么處理嗎

MCU開發(fā)加油站 ? 來源:CSDN技術(shù)社區(qū) ? 作者:aizaiyueye ? 2021-06-16 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32串口通信以及溫度采集搞定,其中主要遇到STM32系列單片機(jī)時(shí)鐘樹的問題,串口通信遇到串口調(diào)試助手能夠接收到數(shù)據(jù)但出現(xiàn)亂碼現(xiàn)象。

開始一直以為是串口配置和程序代碼問題,因?yàn)槭堑谝淮紊想娫诰€調(diào)試STM32板子,后面主要查串口波特率配置和收發(fā)函數(shù)程序段,如下圖:

c66b74cc-cb60-11eb-9e57-12bb97331649.png

波特率設(shè)置成115200沒問題,試著降低波特率改成9600和4800但問題依舊沒有解決,緊接著如下處理:

c6a06ae2-cb60-11eb-9e57-12bb97331649.png

將重定向函數(shù)注釋,單獨(dú)寫串口發(fā)送字節(jié)和字符串函數(shù),依舊失敗。最后鎖定到系統(tǒng)時(shí)鐘配置上,由于手上的STM32開發(fā)板改用了12M的晶振,根據(jù)單片機(jī)時(shí)鐘樹的理解和解讀,一般采用外部時(shí)鐘HSE,系統(tǒng)時(shí)鐘配置成72M,8*9=72,,12*6=72,對(duì)于 SYSCLK、HCLK、PCLK2、PCLK1

這四個(gè)時(shí)鐘的配置一般是:PCLK2 = HCLK = SYSCLK=PLLCLK = 72M,PCLK1=HCLK/2= 36M。UART1掛載在APB2總線,而PCLK2 = HCLK = SYSCLK=PLLCLK = 72M,

c6e61736-cb60-11eb-9e57-12bb97331649.png

因此在system_stm32f10x.c文件中的setsysclockto72()函數(shù)中,(system_stm32f10x.c文件實(shí)現(xiàn)了 STM32的時(shí)鐘配置,操作的是片上的 RCC這個(gè)外設(shè)統(tǒng)在上電之后,首選會(huì)執(zhí)行由匯編編寫的啟動(dòng)文件,啟動(dòng)文件中的復(fù)位函數(shù)中調(diào)用systemInit 函數(shù)就在這個(gè)文件里面定義。systemInit 函數(shù)默認(rèn)調(diào)用setsysclockto72()配置系統(tǒng)時(shí)鐘,系統(tǒng)的時(shí)鐘就被初始化成 72M。)這樣便將系統(tǒng)時(shí)鐘配置成了72M,否則為12*9=108M。但測(cè)試運(yùn)行仍然接收到亂碼。

繼續(xù)找問題所在,查看 在stm32f10x.h里,有下面這段代碼

c782c3d8-cb60-11eb-9e57-12bb97331649.png

原因是庫(kù)使用默認(rèn)8MHz晶振,可以通過宏使用25MHz或12M晶振。具體定義在stm32f10x.h文件中,HSE_VALUE,一開始定義成了8000000,改成12000000搞定,串口通信顯示正常。

版權(quán)聲明:本文為CSDN博主「aizaiyueye」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/aizaiyueye/article/details/79049816

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6078

    文章

    45565

    瀏覽量

    673228
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11189

    瀏覽量

    374500
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1662

    瀏覽量

    58154
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4421

    瀏覽量

    67815

原文標(biāo)題:STM32串口通信亂碼詳細(xì)處理方法

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    智能顯示模塊串口與單片機(jī)連接通信成功,偶爾收到的命令是亂碼有哪些什么原因?

    智能顯示模塊串口與單片機(jī)連接通信成功,偶爾收到的命令是亂碼有哪些什么原因?
    發(fā)表于 03-17 11:28

    11.0592MHz晶振換成12MHz后單片機(jī)串口通訊亂碼的原因分析

    真是沒想到啊,把11.0592MHz的晶振焊成了12MHz,單片機(jī)串口通訊打印全亂碼了。明明頻率差不多,為什么會(huì)導(dǎo)致通訊徹底失敗?貿(mào)澤科普實(shí)驗(yàn)室?guī)Т蠹覐?b class='flag-5'>串口亂碼開始,重新認(rèn)識(shí)晶振。
    的頭像 發(fā)表于 03-06 09:22 ?8969次閱讀
    11.0592MHz晶振換成12MHz后單片機(jī)<b class='flag-5'>串口</b>通訊<b class='flag-5'>亂碼</b>的原因分析

    STM32驅(qū)動(dòng)串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口

    僅是一部分常用的基礎(chǔ)指令,更多更仔細(xì)的指令或者函數(shù)可以訪問陶晶馳資料官網(wǎng)。 硬件和接線 硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊 接線 串口STM32
    的頭像 發(fā)表于 02-10 17:07 ?520次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動(dòng)<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>發(fā)送指令控制HMI<b class='flag-5'>串口</b>屏

    Linux串口操作指南:3步搞定設(shè)置,告別亂碼與回顯干擾

    在 Linux 系統(tǒng)下調(diào)試串口(如 RS232/485)時(shí),新手常面臨兩類典型問題:發(fā)送數(shù)據(jù)出現(xiàn)亂碼、終端回顯干擾接收結(jié)果。實(shí)際上,僅需通過系統(tǒng)自帶的 stty 指令完成基礎(chǔ)配置,配合雙終端測(cè)試,即可快速實(shí)現(xiàn)穩(wěn)定的串口
    的頭像 發(fā)表于 02-01 16:52 ?2212次閱讀
    Linux<b class='flag-5'>串口</b>操作指南:3步搞定設(shè)置,告別<b class='flag-5'>亂碼</b>與回顯干擾

    串口調(diào)試步驟(適合免驅(qū)動(dòng)的232串口設(shè)備)

    密碼切換到root超級(jí)管理下 apt update 更新插件 apt-get install cutecom 安裝系統(tǒng)自帶的串口調(diào)試工具 cutecom 輸入串口測(cè)試的指令會(huì)彈出一個(gè)圖形界面如下圖 32串口協(xié)議測(cè)試需要將第2和第
    的頭像 發(fā)表于 12-17 17:23 ?1604次閱讀
    <b class='flag-5'>串口</b>調(diào)試步驟(適合免驅(qū)動(dòng)的232<b class='flag-5'>串口</b>設(shè)備)

    UWB650串口測(cè)距通信定位模塊規(guī)格書

    UWB650串口測(cè)距通信定位模塊規(guī)格書
    發(fā)表于 11-03 17:40 ?1次下載

    后臺(tái)系統(tǒng)顯示 “數(shù)據(jù)亂碼”,是通信問題還是軟件問題?

    后臺(tái)系統(tǒng)顯示 “數(shù)據(jù)亂碼” 的核心原因是 **“數(shù)據(jù)的編碼格式與解碼格式不匹配”** 或 “數(shù)據(jù)在傳輸 / 處理過程中被破壞” ,通信問題和軟件問題都可能導(dǎo)致,但兩者的本質(zhì)差異在于: 通信
    的頭像 發(fā)表于 09-23 11:02 ?1352次閱讀

    關(guān)于stm32f4zgt6和mspm0g3507串口通信問題

    本人在使用stm32f4zgt6和mspm0g3507串口通信時(shí)出現(xiàn)問題,情況如下: m0芯片使用軟件超時(shí)解析進(jìn)行數(shù)據(jù)接收,使用標(biāo)準(zhǔn)庫(kù)的transmit函數(shù)進(jìn)行數(shù)據(jù)發(fā)送。 stm32使
    發(fā)表于 09-01 11:11

    DTU的S485/232串口能夠復(fù)用嗎?

    想問一下,DTU的S485/232串口能夠復(fù)用嗎?就是窗口下面接很多傳感器設(shè)備那種,主要是傳感器數(shù)量過大,一個(gè)傳感器接一臺(tái)DTU太過于浪費(fèi)。
    發(fā)表于 08-06 06:58

    STM32串口發(fā)送數(shù)據(jù),USART_FLAG_TC無法置位怎么解決?

    STM32串口發(fā)送數(shù)據(jù),在經(jīng)過一段時(shí)間的數(shù)據(jù)發(fā)送,大概200ms發(fā)送一下,一次發(fā)送大概二三十個(gè)字節(jié)的數(shù)據(jù),有可能會(huì)發(fā)生USART_FLAG_TC不置位的情況,如何解決或者避免?輪詢發(fā)送,后卡在了
    發(fā)表于 07-29 11:44

    串口轉(zhuǎn)網(wǎng)網(wǎng)關(guān)有哪些功能應(yīng)用

    直接接入信息網(wǎng)絡(luò)的痛點(diǎn),同時(shí)支持多協(xié)議解析、邊緣計(jì)算與安全防護(hù)等高級(jí)功能。 在工業(yè)自動(dòng)化生產(chǎn)線上,大量設(shè)備如 PLC(可編程邏輯控制器)、傳感器、儀表等仍采用串口通信,而上位機(jī)則是通過以太網(wǎng)進(jìn)行
    的頭像 發(fā)表于 07-17 17:10 ?894次閱讀
    <b class='flag-5'>串口</b>轉(zhuǎn)網(wǎng)<b class='flag-5'>口</b>網(wǎng)關(guān)有哪些功能應(yīng)用

    STM32驅(qū)動(dòng)ADS1256串口輸出-AD轉(zhuǎn)換

    文章介紹了如何使用STM32通過SPI接口初始化并驅(qū)動(dòng)ADS1256高精度AD轉(zhuǎn)換器,包括ADS1256的芯片特點(diǎn)、引腳說明、模塊配置、程序初始化以及實(shí)驗(yàn)中的接線和現(xiàn)象。在實(shí)驗(yàn)中,通過讀取各個(gè)通道的AD值并轉(zhuǎn)換為電壓,展示了芯片功能的正確實(shí)現(xiàn)。
    的頭像 發(fā)表于 07-01 14:59 ?2495次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動(dòng)ADS1256<b class='flag-5'>串口</b>輸出-AD轉(zhuǎn)換

    ESP32用作經(jīng)典藍(lán)牙串口透?jìng)髂K與手機(jī)進(jìn)行串口通信

    本文介紹了如何把ESP32用作一個(gè)藍(lán)牙串口透?jìng)髟O(shè)備使用,其功能和常用的HC-05/06串口藍(lán)牙設(shè)備一樣。并與手機(jī)藍(lán)牙串口APP進(jìn)行雙向藍(lán)牙通信。
    的頭像 發(fā)表于 06-20 17:45 ?3344次閱讀
    ESP32用作經(jīng)典藍(lán)牙<b class='flag-5'>串口</b>透?jìng)髂K與手機(jī)進(jìn)行<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    STM32L431偶發(fā)串口亂碼的原因?怎么解決?

    項(xiàng)目現(xiàn)場(chǎng)發(fā)現(xiàn)有些設(shè)備有時(shí)下發(fā)數(shù)據(jù)沒反應(yīng),該設(shè)備由STM32L431外接模塊來接收網(wǎng)絡(luò)數(shù)據(jù)。經(jīng)過排查,發(fā)現(xiàn)亂碼發(fā)生時(shí),外接設(shè)備發(fā)出的數(shù)據(jù)無亂碼,STM32L431的對(duì)應(yīng)該外接設(shè)備的
    發(fā)表于 06-19 06:46

    單片機(jī)實(shí)例項(xiàng)目:ESP8266串口WIFI

    單片機(jī)實(shí)例項(xiàng)目:ESP8266串口WIFI,推薦下載!
    發(fā)表于 06-03 21:01