HAL库怎么使用SPI通信

2024-10-11 22:38:54

1、第一步:新建或者打开一个HAL工程,在Pinout页右侧的“Configuration ->Peripherals”下找到需要使用的SPI外设,选择“Mode”右侧的下拉框,Full-Duplex Master为主机全双工通信。Hardware NSS Signal为使能端口硬件控制选择,建议Disable,使用软件控制使能端口。 选择完毕后会在右侧的引脚图中显示出端口配置。

HAL库怎么使用SPI通信

2、第二步:因为这里没有使用硬件使能控制,所以还需要配置一个使能端口,这里就使用SPI的NSS端口进行配置,在右侧的引脚图中找到这个端口比如PA4,然后选择“GPIO_Output”。

HAL库怎么使用SPI通信

3、使能端口配置完毕后再左侧的SPI配置中会显示一个突出的红色,这个是提示用户硬件SPI的使能端口被占用了,可以不予理会。

HAL库怎么使用SPI通信

5、第四步:切换到“Configuration”页,找到对应的“SPI”。

HAL库怎么使用SPI通信

7、第六步:继续切换到“GPIO Settings”,这里可以配置SPI各端口的模式,由于前面已经配置了SPI,一般只需要考虑MISO是否开启上拉,以及MOSI和CLK端口的通信速率。 配置完毕后不要忘记点击“OK”确认配置。

HAL库怎么使用SPI通信

9、第八步:使用Keil5打开工程,可以看到在软件初始化的代码中有MX_SPIx_Init(),注意如果软件中使用了FATFS那么需要自己手动把SPI的初始化放到FATFS的初始化前面。

HAL库怎么使用SPI通信

11、对于接收数据,可以使用HAL_SPI_Receive()函数,参数和HAL_SPI_Transmit类似,但个人建议使用HAL_SPI_TransmitReceive()函数,因为HAL_SPI_Receive只管收,而SPI通信不管是收还是发都会发送一次数据,这回导致在接收数据时发送一个不可知的数据造成通信异常。

HAL库怎么使用SPI通信
猜你喜欢