dsp28335实现三线spi
时间: 2023-11-21 14:04:26 浏览: 173
DSP 28335 SCI
实现三线SPI的步骤如下:
1. 首先需要初始化SPI模块,包括硬件SPI的IO口和SPI模块的寄存器设置。
2. 编写SPI发送函数,可以参考引用中的代码。
3. 在主函数中调用SPI发送函数,向外设发送数据。
具体实现步骤可以参考以下代码:
```
// 初始化SPI模块
void Init_Spi(void) {
InitSpiaGpio(); // 初始化硬件SPI的IO口, MOSI SCLK
EALLOW;
SpiaRegs.SPICCR.bit.SPISWRESET = 0; // 软件复位SPI
SpiaRegs.SPICCR.all = 0x0057; // 数据长度为8位;Loopback模式;时钟下降沿发送,上升沿接收,SPI空闲时为高电平状态(同时,SpiaRegs.SPICTL.bit.3 位,即CLOCK PHASE位在这里要为0)
SpiaRegs.SPICTL.all = 0x0016; // 禁用SPI中断;使能发送;主模式
SpiaRegs.SPISTS.all=0;
SpiaRegs.SPIBRR = 0x0003; // 设置波特率,即LSPCK/4
SpiaRegs.SPICCR.bit.SPISWRESET = 1; // 重新使能SPI
EDIS;
}
// SPI发送函数
void Spi_xmit(Uint16 a) {
while(SpiaRegs.SPISTS.bit.BUFFULL_FLAG); // 等待发送缓冲寄存器为空
SpiaRegs.SPITXBUF = a; // 发送
while(!SpiaRegs.SPISTS.bit.INT_FLAG); // 等待发送完成
rdata = SpiaRegs.SPIRXBUF; // 读取一下,为了将SpiaRegs.SPISTS.bit.INT_FLAG标志位置0
}
// 主函数中调用SPI发送函数
void main(void) {
Init_Spi(); // 初始化SPI模块
Spi_xmit(0x1234); // 向外设发送数据
}
```
阅读全文