stm32duino 在第三方庫(kù)中使用 SPI2
stm32duino 庫(kù)默認(rèn)將SPI映射在 STM32 單片機(jī)的 SPI1 中。如果不夠用可以按照官方教程來(lái)解決。?https://github.com/stm32duino/Arduino_Core_STM32/wiki/API
但是,如果 SPI_3 使用了第三方 SPI 庫(kù),如 RF24.h 庫(kù),就不能很好工作了。因?yàn)榈谌綆?kù)一般使用默認(rèn)的 SPI 端口。此時(shí),如果按照官方 API 教程,直接在程序中重映射 SPI 端口,會(huì)報(bào)錯(cuò)。
上述 SPI 可能不存在。是否存在,在于第三方庫(kù)是如何實(shí)例化 SPI 的。如何解決呢?我們以 RF24.h 庫(kù)為例。
一般地,庫(kù)文件在 用戶名\Documents\Arduino\libraries\RF24 的文件中。打開(kāi) RF24.cpp 文件。根據(jù)官方教程,重映射 SPI 端口需要在 begin() 函數(shù)之前。那我們就找到 begin() 函數(shù),并在其之前重映射端口。打開(kāi)文件我們看到,實(shí)例化 SPI 類的類名是 _spi 或者 _SPI ,那我們就將 2 個(gè)都重映射。
然后就可以愉快地在第三方庫(kù)中使用 SPI2 了。注意,修改過(guò)的類文件要避免在其它地方使用,否則可能會(huì)報(bào)錯(cuò),最好復(fù)制一份,將當(dāng)前庫(kù)修改名字重新引用。