28035 SPI 使用笔记

28035 SPI使用笔记

先插图一张,来自应用手册的配置步骤:
28035 SPI 使用笔记_第1张图片

**

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,所以分两段设置频率。
28035 SPI 使用笔记_第2张图片
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=?;

28035 SPI 使用笔记_第3张图片
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; 

你可能感兴趣的:(嵌入式笔记)