📄 11.2.c
字号:
/******************************************************************************
**功能描述: SPI程序,对MAX5742的OUTA通道DA0UT1使能并置数输出**
******************************************************************************/
#include "DSP28_Device.h"
// SPI初始化子程序
void spi_intial()
{
SpiaRegs.SPICCR.all = 0x004F; // 使SPI处于复位模式, 下降沿,16位数据
SpiaRegs.SPICTL.all = 0x0006; // 主控模式, 一般时钟模式,使能talk, 关闭SPI中断
SpiaRegs.SPIBRR = 0x007F; // 配置波特率
SpiaRegs.SPICCR.all = SpiaRegs.SPICCR.all|0x0080; // 退出复位状态
EALLOW;
GpioMuxRegs.GPFMUX.all = 0x000F; // 设置通用引脚为SPI引脚
EDIS;
}
// GPIO初始化子程序
void gpio_init()
{
EALLOW;
GpioMuxRegs.GPFMUX.bit.XF_GPIOF14 = 0; // GPIOF14设置为一般I/O端口
GpioMuxRegs.GPFDIR.bit.GPIOF14 = 1; // 把GPIOF14设置为输出
EDIS;
GpioDataRegs.GPFDAT.bit.GPIOF14 = 1; // GPIOF14=1;该端口为使能信号
}
void main(void)
{
unsigned long int i = 0;
InitSysCtrl(); // 系统初始化子程序,该程序包含在DSP28_SysCtrl.C中
DINT; // 关闭总中断
IER = 0x0000;
IFR = 0x0000;
spi_intial(); // SPI初始化子程序
gpio_init(); // GPIO初始化子程序
while (1)
{
GpioDataRegs.GPFDAT.bit.GPIOF14 = 0;
SpiaRegs.SPITXBUF = 0xf000; // 初始化指令:DAC_A使能
while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}
SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;
GpioDataRegs.GPFDAT.bit.GPIOF14 = 1;
for(i = 0; i<10; i++){}
GpioDataRegs.GPFDAT.bit.GPIOF14 = 0;
SpiaRegs.SPITXBUF = 0x0fff; // DAC_A置数
while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}
SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;
GpioDataRegs.GPFDAT.bit.GPIOF14 = 1;
for(i=0; i<10; i++){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -