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