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成神之路

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/20452.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>