S32K148-SPI驱动

hello,大家好,这次分享基于S32K148-SDK的SPI的驱动配置方法,最近一段时间开发BMS的单体电压温度采集,用到SPI,所以我就顺便把SPI驱动方法记录下来

SPI配置部分重要部分:

1)时钟分频(与传输波特率有关);

2)SPI工作模式,一共有四种方式,具体看项目要求进行配置。

3)片选信号CS,S32K148具有内部硬件片选,但是一般我不用。S32K148每次发送完之后,片选信号自动拉低,针对连续发送问题有点麻烦。所以一般我片选信号CS会找一个GPIO口做软件控制就行。

 

 

专家系统生成代码之后(包括引脚复用部分),SPI初始化非常简单

void SPI0_Masterinit(void)
{
    LPSPI_DRV_MasterInit(LPSPICOM1,&lpspiCom1State,&lpspiCom1_MasterConfig0);

}

SPI原理最基础部分,它属于移位寄存器,TX每发送一个字节,RX同步接收一个字节,

SPI发送函数

void SPIO_MasterSendData(uint8_t *SendData, uint8_t ByteLength)
{
     uint8_t RecBuffer[ByteLength];
     for(uint8_t i=0;i<ByteLength;i++)
     {
         LPSPI_DRV_MasterTransferBlocking(LPSPICOM1, &SendData[i], &RecBuffer[i], 1, TIMEOUT);
         SPI0_RecBuffer[i] = RecBuffer[i];
     }

}

 

posted @ 2022-07-31 16:17  涛哥nihao  阅读(1042)  评论(0)    收藏  举报