最近小编出差南京,到沿海看看前沿的技术,不得不说内地和沿海差距还蛮大的,所以回来后继续加油吧少年,嘿嘿!
今天在配置SPI的时候发现STM32读取数据和逻辑分析工具分析的数据不一致,后面发现是SPI速度配置的问题,所以在此记录一下:
发现是CPOL和CPHA配置问题,无论分析仪怎么设置,程序读出数据都不对,经过配置终于程序读取数据和分析仪的一致了;
1、cube配置:
/******************************************************************************************
*** 函数名称: SPIx_ReadWriteByte
*** 输入参数: byte:待发送数据
*** 返 回 值: uint8_t:接收到的数据
*** 说 明:往串行Flash读取写入一个字节数据并接收一个字节数据
*** 编者 时间 版本
*** WL 2020/12/5 V0.1
******************************************************************************************/
uint8_t SPIx_ReadWriteByte(SPI_HandleTypeDef* hspi,uint8_t byte)
{
uint8_t data_read =0x00, data_send = byte;
if(HAL_SPI_TransmitReceive(hspi, &data_send, &data_read, 1, 0xFF)!=HAL_OK)
{
data_read=0xFF; //错误就返回0xFF
}
return data_read;
}