在考慮STM32F1和F302-NUCLEO通信時,先暫時考慮SPI總線方式,因為UART和I2C速度都太慢,采用并行總線的方式應(yīng)用起來還不太穩(wěn)定,后期再做測試。在這里就分享一個實驗成功了的SPI總線雙機(jī)通信!
在測試中,讓F1作為主機(jī),F(xiàn)302-NUCLEO作為從機(jī),SPI總線中,CS引腳都采用內(nèi)部軟件控制,主機(jī)CS引腳內(nèi)部上拉到VCC,從機(jī)CS引腳下拉到GND,這樣,可以省略一個IO線!連接方式如下:
測試命令如下:通過F1的四個按鍵,分別發(fā)送0X01 0X02 0X030X04字符,F(xiàn)3-NUCLEO板子收到字符后,將特定字符打印到串口中。其中,從機(jī)通過SPI中斷方式接受主機(jī)數(shù)據(jù)。
在主機(jī)端,為了測試方便,需要實現(xiàn)LED/KEY/UART/SPI等模塊的底層驅(qū)動配置,這個都在附件工程中!在從機(jī)端,為了實現(xiàn)命令打印和測試,也需要實現(xiàn)LED/KEY/UART/SPI模塊的配置,對于F3-NUCLEO,測試了一個按鍵和串口,效果如下:
代碼如下,見相關(guān)文件:
確定串口和SPI驅(qū)動無誤后,將兩個板子進(jìn)行連接進(jìn)行了測試。測試效果:
代碼部分:
在測試F3-NUCLEO板子過程中,因為電腦問題,板子自帶的ST-LINK-V2-1無法使用,一直裝不上驅(qū)動,虛擬串口和U盤也不能顯示,只好采用外部ST-LINK進(jìn)行程序下載了。另外,電腦沒有網(wǎng)絡(luò)權(quán)限,無法使用在線編譯功能,還是用MDK方式編程!
下面是測試圖片: