本文來源電子發燒友社區,作者:Aivisus, 帖子地址:https://bbs.elecfans.com/jishu_2308773_1_1.html
串口通信測試(視頻詳見作者原帖子)
此次MC3172的串口測試設定兩個目標,一個是與PC通信,即能夠在PC上對MC3172板子進行收發數據。第二是與51單片機進行收發數據通訊。
首先查看到MC3172開發版有12組可以使用的串口配置,從網上找到某位大神總結的一張圖如下:

在看例程里,線程2就是串口通訊的例程,打開注釋,即可以進行串口通信的測試。這里使用一個uart轉usb的小轉接板,用于PC與MC3172進行串口通信,轉接板的RX,TX分別接入MC3172開發板的PC3(TX),pc2(RX),要注意RX/TX的接線順序,接反是收發不了數據的。

然后在PC上打開串口工具 SCOM ,把轉接板插入PC,找到轉接板對應的串口號,然后在scom里打開這個串口,設置波特率為 115200, 8N1 的設置,即可看到MC3172向PC連續發送的0x31數據了,PC上向開發板發送也一樣,發送后可以將數據再反向發回來,即驗證開發板與PC通訊成功。

- void GPCOM_UART_EXAMPLE(u32 gpcom_sel)
- {
- INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV4));
- GPCOM_SET_IN_PORT(gpcom_sel,(GPCOM_RXD_IS_P2));
- GPCOM_SET_OUT_PORT(gpcom_sel,(
- GPCOM_P0_OUTPUT_DISABLE|GPCOM_P3_OUTPUT_ENABLE|GPCOM_P2_OUTPUT_DISABLE|GPCOM_P1_OUTPUT_DISABLE|
- GPCOM_P0_IS_HIGH |GPCOM_P3_IS_TXD |GPCOM_P2_IS_HIGH |GPCOM_P1_IS_HIGH
- ));
- GPCOM_SET_COM_MODE(gpcom_sel,GPCOM_UART_MODE);
- GPCOM_SET_COM_SPEED(gpcom_sel,12000000,9600); //這里<---115200改為9600
- GPCOM_SET_OVERRIDE_GPIO(gpcom_sel, (
- GPCOM_P2_OVERRIDE_GPIO|GPCOM_P2_INPUT_ENABLE |
- GPCOM_P3_OVERRIDE_GPIO
- ……
- }
首先通過PC連接51開發板,把通訊速率調至9600,8N1的設置,向開發板發送字符串,51單片機開發一個簡單的程序,就是將串口收到的acsii碼顯示到LCD屏幕上,PC向51單片機發送字符串時,51單片機能夠正確的顯示出發送的內容,因此驗證51單片機通訊工作正常。
然后把MC3172的PC3(TX),PC2(RX)腳連接51單片機的P30,P31口,即把MC3172串口與51單片機串口連接起來,驗證MC3172能夠51單片機通訊。
燒寫好程序,連接好線后,運行MC3172程序,單片機LCD 上顯示的是亂碼,并沒有正確的顯示出預設的字符串。又將MC3172連接到PC上,PC上使用9600速率進行連接,發現也是收到的數據不正確。

經過幾番測試研究,又上網找資料,終于在一個論壇里,發現一個官方技術人員關于MC3172串口通訊的回帖,串口速率的設置,不能只設置波特率,需要根據芯片主頻,來設定合適的分頻數,以及芯片外設的主頻率和通訊波特率,并且主頻頻率于波特率的比值不能超過255, 那這一下就明白了,只修改通訊速率是不行的。
那么以這次與51開發板通訊所需要的9600通訊來說,是這樣計算的,因為使用的是200M(實際是192076800Hz) 先進行1/256分頻,得到外設的工作頻率 750300, 然后檢驗 6002400/9600=78.1, 78 < 255, 即合適。如果這里分頻選擇小了,那么外設工作頻率就大,比如選擇32分頻,那么外設工作頻率為192076800Hz/32=6002400, 再檢查倍率6002400/9600=625, > 255, 則無法正常工作。
因此了解這個規則后,就可以隨心所欲的設置了,同時如果在配置線程時,選擇了不同的晶振,也需要修改相關的參數,串口才能正常的工作。
最后在選擇內部rc晶振下,修改兩行代碼如下,即可以正確的與51單片機進行通訊了。
INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIv2));
改為
INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV256));
GPCOM_SET_COM_SPEED(gpcom_sel,12000000,115200);
改為
GPCOM_SET_COM_SPEED(gpcom_sel,750300,9600);
最后終于在51單片機上收到MC3172板子發來正確
的數據了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
熱點推薦
基于RK3576處理器,米爾RK3576開發板免費試用
年7月19日 ? 評測數量: 3塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級

搭載OpenHarmony操作系統,視美泰SC-3568HA開發板免費試用
: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板

基于RK處理器,創龍TL3562-MiniEVM開發板試用體驗
數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開

性能強悍!合眾HZ-RK3568開發板試用體驗
月19日 ? 評測數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級

【免費試用】開發板評測大賽開啟!OH 、RISC-V、Rockchip頂級開發板等你試用~
技術人的狂歡,開發者的盛宴!2025年最值得期待的硬核賽事——電子發燒友開發板評測大賽正式啟動!無論你是開源生態的探索者、芯片架構的極客,還是物聯網領域的創新達人,本次大賽三大賽

有獎丨米爾 NXP i.MX91開發板免費試用來啦
米爾與NXP合作發布的新品基于NXPi.MX91應用處理器的MYD-LMX91開發板免費試用名額來啦~~米爾提供了3套價值588元的MYD-LMX91開發板發起

免費丨米爾 STM32MP257開發板有獎試用
米爾與ST合作發布的新品基于STM32MP257應用處理器的MYD-LD25X開發板免費試用活動來啦~~米爾提供了2塊價值488元的MYD-LD25X開發板發起

dsPIC33EDV64MC205電機控制開發板用戶指南
電子發燒友網站提供《dsPIC33EDV64MC205電機控制開發板用戶指南.pdf》資料免費下載
發表于 01-21 14:34
?10次下載

評論