Stm下硬件SPI
如果要使用硬件版本的SPI同时收发数据,要注意不要用HAL库中的HAL_SPI_TransmitReceive函数,这个不能实现同时发送与接受,因为接受的数据其实是之前SCK信号产生的。
所以自定义了个函数,在使用以下同时收发函数前,注意:
1:SPI配置成全双工模式,是能SPI外设
2:while(cout++ <200);//等待数据真的发送完毕,这个和速率有关。
因为CS脚是单独软件控制的,极有可能SPI数据发往移位寄存器了,但是还没有真的发送出,这时候CS就拉高,导致SPI通信失败,所以有个延时。
uint8_t W25QCS_SPI_RW(uint8_t a_u8){
uint8_t cout = 0;
uint8_t t_buf[1] = {a_u8},r_buf[1] = {0};
// HAL_SPI_TransmitReceive(&hspi2,t_buf,r_buf,1,1000);
while(!__HAL_SPI_GET_FLAG(&hspi2,SPI_FLAG_TXE)){
// 等到这个发送缓
Stm下硬件SPI最先出现在Python成神之路。
共有 0 条评论