// 初始化SPI结构体变量
SPI_HandleTypeDef hspi1;
// 填充SPI初始化结构体
hspi1.Instance = SPI1; // 选择SPI1外设
hspi1.Init.Mode = SPI_MODE_MASTER; // 设置为主模式
hspi1.Init.Direction = SPI_DIRECTION_2LINES; // 全双工通信
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; // 数据位宽为8位
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; // 时钟信号空闲时为低电平
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; // 数据采样在第一个边沿
hspi1.Init.NSS = SPI_NSS_SOFT; // 使用软件NSS管理
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; // 设置预分频系数,调整速率
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; // 最高位先发送
hspi1.Init.TIMode = SPI_TIMODE_DISABLE; // TI(传输中断)模式关闭
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; // CRC校验关闭
hspi1.Init.CRCPolynomial = 7; // 如果启用CRC,设置多项式
// 初始化SPI
HAL_SPI_Init(&hspi1);
|