开发环境:
硬件:MPC5748G
软件:S32 Design Studio for Power Architecture Version 2017.R1
外设:
W25Q64
spi引脚:
PI[6] CS0_2 xxx
PE[15] SCLK_2 819
PG[15] SOUT_2 xxx
PG[14] SIN_2 818
步骤及注意事项:
1.配置好外设及系统时钟
2.初始化spi设置
1)轮询模式
2)中断模式
a.需要在中断向量表中配置中断函数
b.初始化中断寄存器PSR
c.使能spi接收发送中断
遇到的问题:
使用自带SPI的CS片选,从初始化开始,CS就一直为低电平
推荐使用GPIO做CS片选
在使用从机模式时,我使用了STM32作为SPI主机,然后配置为CPOL=1&&CPHA=1时,
主机发送的数据0x81到从机接收的数据变成了0xC0
使用杜邦线连接两块开发板时,干扰十分严重,尽量把杜邦线每根分开使用
另外,在从机数据是0x80时,除时钟外的SOUT会跳变为高,一直到0x00再跳变为低
解决方案:都设置为0就好了,MARK一下
解决STM32的从机SPI接收数据错位或者出错的问题
MARK一下:
做从机时,SPI的CS必须要设置为功能引脚,否则在SCLK恢复为GPIO引脚时,会导致数据错位(会被误认为是一个时钟)
Demo下载地址:
mpc5748g_spi_demo.zip