MPC5748G之spi polling & interrupt

本文围绕STM32从机SPI开发展开,介绍了开发环境、SPI引脚等内容。提到使用STM32作为SPI主机,配置为CPOL=1&&CPHA=1时出现数据接收错位问题,如主机发0x81从机收0xC0,用杜邦线干扰严重。给出解决方案,如都设为0,还指出做从机时SPI的CS要设为功能引脚。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:

硬件: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值