LL库
LL库-使用SPI
- Fang XS.
- 1452512966@qq
- 如果有错误,希望被指出
前言
- 使用STM32CubeMX生成的代码,通常不能直接使用。
SPI
- 以SPI2为例。在STM32CubeMX自动生成代码之后:
- 在
MX_SPI2_Init
最后添加:
/* USER CODE BEGIN SPI2_Init 2 */LL_SPI_Enable(SPI2);
// LL_SPI_TransmitData8(0xff); // 有的设备加这句 读不到正确的ID/* USER CODE END SPI2_Init 2 */
- 在
MX_SPI2_Init
外添加:
uint8_t SPI2_ReadWriteByte(uint8_t TxData)
{ uint8_t retry = 0; /* Check if Tx buffer is empty */while (!LL_SPI_IsActiveFlag_TXE(SPI2)) {retry++;if(retry > 200) return 0;} /* Write character in Data register.TXE flag is cleared by reading data in DR register */LL_SPI_TransmitData8(SPI2, TxData);retry = 0;/* Check if Rx buffer is not empty */while (!LL_SPI_IsActiveFlag_RXNE(SPI2)) {retry++;if(retry > 200) return 0;} /* received byte from SPI lines. */return LL_SPI_ReceiveData8(SPI2);
}
更多推荐
LL库
发布评论