第一節(jié) 硬件解讀
大家的開發(fā)板到手之后,可以看見,只有一個USB口,那個口就是串口,開發(fā)板A和開發(fā)板B共用一個串口,通過按鍵切換。
我們以開發(fā)板A為例,原理圖如下:
開發(fā)板A芯片上面的PA2和PA3分別是NODEA_USART_TX和NODEA_USART_RX,而開發(fā)板A和Debugger開發(fā)板的連接如下:
通過查看CH443K芯片的引腳可以得到,SEL引腳的高低電平,可以讓CH443K芯片在1腳4腳連接或者3腳4腳連接中選擇。CH443K芯片引腳說明如下:
當CH443K芯片的SEL為高電平時,其芯片COM和CH1引腳導通。DEBUGGER_TX和B_TX導通,DEBUGGER_RX和B_RX導通;反之DEBUGGER_TX和A_TX導通,DEBUGGER_RX和A_RX導通。
那么,DEBUGGER_TX和DEBUGGER_RX連接在哪?當然是DAPLINK板的MCU上面啦,如下圖:
連接到Debugger板的MCU之后,這個MCU通過內(nèi)部程序(不需要我們寫,比賽的時候已經(jīng)寫好了)轉(zhuǎn)到唯一的USB口上,也就是我們的串口上。
第二節(jié) CuebMX的配置
第一步:選擇PA2的引腳的USART2_Tx功能,如下圖:
第二步:選擇PA3引腳的USART_RX功能,如下圖:
第三步:發(fā)現(xiàn)USART相關(guān)的引腳是黃色的,不是綠色的,這是為什么呢?注意:黃色是異常提醒,綠色是正常的。
第四步:如下圖配置USART2。注意:2代表的是異步全雙工通信;6代表波特率,數(shù)據(jù)長度,校驗位和停止位。這里波特率是115200,比賽基本上都是9600。
其中:具體Mode配置信息如下:
Mode:代表串口模式,配置為(異步)Asynchronous,(同步主機)Synchronous Master,(同步從機)Synchronous Slave,(單線半雙工)Single Wire (Half - Duplex),(多處理器通信)Multiprocessor Communication,(紅外通訊)IrDA ,(局域互聯(lián)網(wǎng)模式)LIN ,(智能卡模式)SmartCard ;
Hard Flow Control RS232:代表RS232的硬件控制流,常用引腳為CTS,RTC,CTS/RTS或者Disabled;
Hard Flow Control RS485:代表RS485的硬件控制流;
其中:具體Configuration配置信息如下:
Baud Rate:代表串口波特率,常用波特率為9600,115200等;
Word Length:代表字節(jié)位,常用字節(jié)為:7位,8位或者9位;
Parity:代表校驗位;常用為:(無校驗)None,(奇校驗)Even或者Odd(偶校驗)Odd;
Stop Bits:代表停止位,常用為:0.5,1,1.5或者2;
Data Direction:代表數(shù)據(jù)傳輸方向,常用為(發(fā)送和接收)Receive and Transmit,(接收)Receive或者(發(fā)送)Transmit;
Over Sampling:代表過采樣,常用為8倍采樣和16倍采樣,8倍采樣,也就是一個數(shù)據(jù)位采樣8次,16倍則是16次。采樣率高精度會高一些,當然相應(yīng)的功耗也會變高;
Single Sample:代表單次采樣,使能時使用單次采樣值,否則使用三次采樣值。前面的過采樣會有8或16次采樣值,當選擇單次采樣時,會使用其中的一次采樣值作為數(shù)據(jù)位邏輯電平的結(jié)果。三次采樣則用三次采樣的判斷結(jié)果為準。同樣三次采樣也是為了確保數(shù)據(jù)的準確性。
ClockPrescaler:代表時鐘預分頻器;
Fifo Mode:代表數(shù)據(jù)緩存模式;
Txfifo Threshold:代表發(fā)送數(shù)據(jù)的閾值;
Rxfifo Threshold:代表接收數(shù)據(jù)的閾值;
Auto Baudrate:代表自動波特率,顧名思義,可以根據(jù)接收到的數(shù)據(jù)進行波特率自適應(yīng);
TX Pin Active Level Inversion:代表發(fā)送電平反轉(zhuǎn),發(fā)送引腳電平極性反轉(zhuǎn),正常情況下空閑電平為高電平,使能該功能后變成空閑電平為低電平;
RX Pin Active Level Inversion:代表接收電平反轉(zhuǎn),接收引腳電平極性反轉(zhuǎn),正常情況下空閑電平為高電平,使能該功能后變成空閑電平為低電平;
Data Inversion:代表數(shù)據(jù)電平反轉(zhuǎn)收發(fā)數(shù)據(jù)的邏輯電平極性反轉(zhuǎn),正常是高電平為邏輯1,低電平為邏輯0,使能該功能后則變成低電平為邏輯1,高電平為邏輯0。校驗位也隨著反轉(zhuǎn);
TX and RX Pins Swapping:代表收發(fā)引腳互換,接收和發(fā)送引腳互換,適用于外部硬件連線錯誤時進行切換。
Overrun:代表溢出檢測,:用于開啟接收溢出檢測,使用該功能后,當接收數(shù)據(jù)未取出時,又接收到一個數(shù)據(jù),此時會觸發(fā)一個溢出標志。
DMA on RX Error:代表接收錯誤時不禁用DMA,使能該功能后,即使出現(xiàn)接收錯誤也不會關(guān)閉DMA傳輸;
MSB First:代表數(shù)據(jù)高位先發(fā),正常數(shù)據(jù)是先發(fā)低位再發(fā)高位,使能該功能后可以先發(fā)高位數(shù)據(jù);
第三節(jié) MDK代碼
第一步:編寫串口發(fā)送函數(shù),如下圖:
第二步:聲明串口發(fā)送函數(shù),如下圖:
第三步:編寫主函數(shù),如下圖:
第四步,配置MicroLIB庫,如下:【注意:不使用printf,可以不配置;如果使用printf但是不配置,程序?qū)⒖ㄋ馈?/strong>
第五步:配置好下載器之后,編譯代碼,下載即可。
第六步:打開串口軟件,如下圖配置:選擇串口號;接收緩存區(qū)選擇HEX模式,波特率選擇115200;串口號請掃描,選擇正確的串口號,不一定是COM4;最后打開串口。
? ?
第四節(jié) 實驗現(xiàn)象
注意:
1,請用USB線連接電腦與開發(fā)板;
2,請選擇A開發(fā)板;
3,一定要勾選微庫。
現(xiàn)象:
1,串口發(fā)送以115200波特率發(fā)送數(shù)據(jù)。
來源:撞上電子微信公眾號
版權(quán):東莞市東城墨竹公子電子工作室
日期:2024.11.13
第五節(jié) 課后作業(yè)
利用按鍵,串口打印按鍵按下的次數(shù)。
-
STM32
+關(guān)注
關(guān)注
2270文章
10914瀏覽量
356723 -
串口
+關(guān)注
關(guān)注
14文章
1557瀏覽量
76717 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5087瀏覽量
97792
發(fā)布評論請先 登錄
相關(guān)推薦
評論