28035 SPI 使用笔记

28035 SPI使用笔记

先插图一张,来自应用手册的配置步骤:

**

Step 1

**: 将SPI外设复位 SPISWRESET=0,在复位状态下可以更改SPI的寄存器。

   SpiaRegs.SPICCR.bit.SPISWRESET=0;

**

Step 2

1、 按照实际需求配置SPI模式。
配置主从模式,这里选择主机模式

SpiaRegs.SPICTL.bit.MASTER_SLAVE=1; 	//0:Slave 1:Master

2、设置相位极性 a、SpiaRegs.SPICCR.bit.CLKPOLARITY=?;
极性:SPI在闲置的时候,时钟总线的电平。
在这里插入图片描述
SpiaRegs.SPICCR.bit.CLKPOLARITY=1; //总线闲置为高电平 ``
在这里插入图片描述

SpiaRegs.SPICCR.bit.CLKPOLARITY=0; //总线闲置为低电平

b、SpiaRegs.SPICTL.bit.CLK_PHASE= ? ;
相位:SPI在采样数据输入或输出的时候选择在时钟前沿或者后沿(上升沿与下降沿)
当在(时钟极性为低前沿采样)时,意味着在上升沿的时候会发生:主机获取从机输出以及主机输出从机输入,而每个bit数据移位到发送 寄存器的时刻是在下降沿开始后。
0:前沿 1:后沿

3、时钟设置
因为28035的SPI时钟频率不能大于LSPCLK/4,所以分两段设置频率。
SPI频率
LSPCLK为低速外设的时钟,由系统时钟SYSCLKOUT (一般设置60M)分频得到,在 SysCtrlRegs.LOSPCP_BITS.LSPCLK[2:0]中设置, 在这里我设置了4分频(系统默认)。那么LSPCLK的频率就是15Mhz
设置波特率大概是195000bps

SpiaRegs.SPIBRR = 76;       // 60M/4 / (76+1) = 194805.2

4、设置发送接收字符的长度(bit)

SpiaRegs.SPICCR.bit.SPICHAR=?;

在这里插入图片描述
5、清楚标记位

SpiaRegs.SPISTS.all=0;

6、配置FIFO

	//配置发送FIFO
	SpiaRegs.SPIFFTX.bit.SPIRST=1;		//SPI FIFO可以恢复发送或接收。对SPI寄存器位没有影响。
	SpiaRegs.SPIFFTX.bit.TXFFIENA=1;	//启用了SPI FIFO增强。
	SpiaRegs.SPIFFTX.bit.TXFIFO=1;		//
	SpiaRegs.SPIFFTX.bit.TXFFINTCLR=1;	//清除中断位

	//配置接收FIFO
	SpiaRegs.SPIFFRX.bit.RXFFOVFCLR=1;	//清除RXFFOVF位
	SpiaRegs.SPIFFRX.bit.RXFFINTCLR=1;	//清除中断标志
	SpiaRegs.SPIFFRX.bit.RXFFIL=0x1f;	//复位值
	SpiaRegs.SPIFFRX.bit.RXFIFORESET=1;	//复位接收FIFO
	SpiaRegs.SPIFFRX.bit.RXFFINTCLR=1;	//清除中断标志
	SpiaRegs.SPIFFRX.bit.RXFFIL=0x1f;	//复位值

	SpiaRegs.SPIFFCT.all = 0x0000;

7、开启四线模式

	SpiaRegs.SPICTL.bit.TALK=1;	

8、不受仿真断点闲置

SpiaRegs.SPIPRI.bit.FREE = 1;	

Step 3、停止复位操作

	SpiaRegs.SPICCR.bit.SPISWRESET = 1; 
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值