单片机使用STM32G4系列配置,基础配置使用STM32CUBE
这里STM32G4和IC-MCB主要以SPI通讯,连接MCB的1-4引脚。并且使用IC-MCB的IO3作为中断触发引脚,即每次BISS主机发送给IC-MCB一个MA,则IC-MCB的中断触发(高电平),通知应该把数据通过STM32G4的SPI口发送给IC-MCB。NSLO和SLO一组,NMA和MA一组,当开启差分模式的时候启用NSLO和NMA,笔者这里未开启,使用其他差分芯片,因此相关配置已关闭。当然芯片本身的差分也是很好用的。
STM32关于SPI和DMA的配置,都是基础配置直接贴图
void MX_SPI2_Init(void)
{
hspi2.Instance = SPI2;
hspi2.Init.Mode = SPI_MODE_MASTER;
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi2.Init.NSS = SPI_NSS_SOFT;
hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi2.Init.CRCPolynomial = 7;
hspi2.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
if (HAL_SPI_Init(&hspi2) != HAL_OK)
{
Error_Handler();
}
}
void MX_DMA_Init(void)
{