吴忠躺衫网络科技有限公司

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>STM32F107VCT6開發(fā)板學(xué)習(xí)問題筆記

STM32F107VCT6開發(fā)板學(xué)習(xí)問題筆記

2021-03-08 | pdf | 90.0KB | 次下載 | 2積分

資料介紹

使用開發(fā)板的USART作為UART通信,在前調(diào)用BSP_Init()函數(shù)初始化開發(fā)板,串口上傳輸?shù)臄?shù)據(jù)出錯:'a'變成0xfa或0xfe;

【在這個問題解決之后,回頭總結(jié)下,在解決問題時:
1.預(yù)計有可能造成出錯的原因(這個可能需要一些經(jīng)驗,但是思維方式需要這樣的猜測,從系統(tǒng)內(nèi)外,可以先羅列出盡可能有的原因,后面再一一排除)
2.盡可能的定位出錯的地方(比如這里通過在線調(diào)試,確定在修改時鐘后,可以解決數(shù)據(jù)發(fā)送的不正確)
3.推測并排除次因,找出主因,往深一步探測 】

1:猜測原因。
外因:串口接收的過程受干擾
內(nèi)因:A.端口設(shè)置有問題 B.USART的波特率設(shè)置有問題

2:定位錯誤
在剛開始時通過屏蔽BSP_Init()發(fā)現(xiàn)功能正常,再具體定位到BSP_Init()里面的SYSCLK_Frequency時鐘設(shè)置,發(fā)現(xiàn)例程中默認(rèn)的是72M,但是改為36M,就沒有問題,應(yīng)該是時鐘方面的設(shè)置問題,具體的問題做何解析?

3:推測排除,深究
外因內(nèi)因很好排除,數(shù)據(jù)既然在波特率低時能正常通信,可能不是端口設(shè)置的問題,應(yīng)該是波特率的問題,常看用戶手冊該節(jié)的資料

注:
1.CPU 的時鐘頻率越低,則某一特定波特率的誤差也越低。可以達(dá)到的波特率上限可以由這組數(shù)據(jù)得到。
2.只有USART1 使用PCLK2(最高72MHz)。其它USART使用PCLK1(最高36MHz)。
USART的波特率的計算公式:
USARTDIV是一個無符號的定點數(shù)。這12位的值設(shè)置在USART_BRR寄存器。那么USARTDIV與USART_BRR的關(guān)系又是怎么樣的?
加入USARTDIV=27.75;那么USART_BRR=0x1B(27)+0XC(0.75*16)=0X1BC;同理可以從USART_BRR推出USARTDIV的值;
假設(shè)fck=36000000;Tx=115200;=>USARTDIV=19.53125;所以0x13+(0.53125*16=8.5)=>0x13+0x9=0x139;所以實際上是0x139產(chǎn)生的波特率:115015.97(誤差率為0.15%);
===》理論最大波特率:36000000/(16*1.0)=2.25M(USARTDIV最小為1.0)
繼續(xù)往下查,對于SYSCLK_Frequency最高72M,運行應(yīng)該沒有問題,但是目前有問題;順藤摸瓜,查看各個時鐘控制器,發(fā)現(xiàn)時鐘設(shè)置路徑:HSE-->PREDIV2-->PLL2-->PREDIV1-->PLL-->SYSCLK;
發(fā)現(xiàn)其中有問題:HSE(25M),PREDIV2(源代碼設(shè)置是2分頻),PLL2(8倍頻),PREDIV1(9倍頻),SYSCLK是算不出72M的,這時72M的算法其實已經(jīng)超過72M,所以給USART2時,波特率計算時會出現(xiàn)問題;將PREDIV2(改為5分頻就對了);
這就是為什么調(diào)用BSP_Init()或者SystemInit會出問題,他們都調(diào)用SetSysClock(),再調(diào)用SetSysClockTo72()【宏定義72M】,同時將系統(tǒng)時鐘改為36M時不會出問題,因為此時調(diào)用的不是出問題的SetSysClockTo72(),而在之前用的是出錯的SetSysClockTo72()卻沒有發(fā)現(xiàn)問題,是因為系統(tǒng)時鐘雖沒有在預(yù)設(shè)值,但是系統(tǒng)還足以正常工作,但是一旦添加串口,波特率設(shè)置就會有很大的偏差,數(shù)據(jù)傳輸就出錯。

1:參考代碼其實里面是有很多問題的
2:我們應(yīng)該盡可能的多閱讀參考代碼,利用其中的資源,避免重復(fù)造輪子。

2:用串口終端軟件顯示字符串,連續(xù)發(fā)送幾個字符串時,“xxxx/n”,包含了換行轉(zhuǎn)義字符,但是就是不會換行?

通過調(diào)試,發(fā)現(xiàn)在存儲空間,轉(zhuǎn)義字符‘/n’是正確的0x0a,

USART_SendString(USART2,Menu[0]);
USART_SendString(USART2,Menu[1]);
USART_SendString(USART2,Menu[2]);
USART_SendString(USART2,Menu[3]);

但是不連續(xù)發(fā)送就不會出現(xiàn)這種現(xiàn)象,或者一句句調(diào)試打印也不會出現(xiàn)不換行的現(xiàn)象,斷定是連續(xù)發(fā)送的時間間隔太短,軟件還沒來得及換行,就又重新顯示新數(shù)據(jù),那么就在USART_SendString的尾部加了延時,就解決問題了。

來源:http://www.51hei.com/stm32/4117.html

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AN158 GD32VW553 Wi-Fi開發(fā)指南
  2. 1.51MB   |  2次下載  |  免費
  3. 2嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)
  4. 1.61 MB  |  1次下載  |  免費
  5. 3AN148 GD32VW553射頻硬件開發(fā)指南
  6. 2.07MB   |  1次下載  |  免費
  7. 4PZT驅(qū)動開關(guān)電路
  8. 0.09 MB   |  1次下載  |  免費
  9. 5模擬電路仿真實現(xiàn)
  10. 2.94MB   |  1次下載  |  免費
  11. 6PCB繪制基礎(chǔ)知識
  12. 2.44MB   |  1次下載  |  免費
  13. 7EE-38:ADSP-2181 IDMA端口-周期竊取時序
  14. 75.0KB   |  次下載  |  免費
  15. 8EE-82:使用ADSP-2181 DSP的IO空間對另一個ADSP-2181進(jìn)行IDMA引導(dǎo)
  16. 86.86KB   |  次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  139次下載  |  1 積分
  5. 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
  6. 0.10 MB   |  132次下載  |  免費
  7. 4美的電磁爐維修手冊大全
  8. 1.56 MB   |  24次下載  |  5 積分
  9. 5如何正確測試電源的紋波
  10. 0.36 MB   |  19次下載  |  免費
  11. 6感應(yīng)筆電路圖
  12. 0.06 MB   |  10次下載  |  免費
  13. 7LZC3106G高性能諧振控制器中文手冊
  14. 1.29 MB   |  9次下載  |  1 積分
  15. 8萬用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
在线百家乐纸牌| 百家乐开户最快的平台是哪家| 大发888下载不了| 中国百家乐官网的玩法技巧和规则| 大发888送体验金| 瑞士百家乐的玩法技巧和规则| 百家乐官网手机游戏下载| 百家乐博之道娱乐城| 百家乐官网编单短信接收| 大发888中文版下载| 百家乐猜大小规则| 百家乐官网网投打法| 优博最新网址| 老虎机控制器| 百家乐官网真钱路怎么看| 全讯网高手论坛| 百家乐公式书| 正规百家乐官网平注法口诀| 伟易博百家乐官网现金网| 六合彩开奖结果| 大发888娱乐城客户端lm0| 百家乐最好的平台是哪个| 赌王百家乐官网的玩法技巧和规则| 真人百家乐官网皇冠网| 大赢家即时比分| 皇冠现金网哪个最好| 亚洲百家乐的玩法技巧和规则 | 百家乐官网视频打牌| 银河娱乐场| 战神娱乐| 大发888娱乐城备用| 网络百家乐官网| 豪享博百家乐官网的玩法技巧和规则| 云博投注| 足球现金网开户| 郑州市太阳城宾馆| 奥斯卡百家乐的玩法技巧和规则 | 百家乐官网解析| 赛马会娱乐城| 尊龙娱乐网| 御金娱乐城|