我想用 TM4C123GH 和 DAC MCP4921生成正弦波,但我没有在我的 IC 端口获得输出。 我的代码如下:-
#包含
#包含
#包含
#include "inc/hw_memmap.h"
#include "inc/hw_ssi.h"
#include "inc/hw_ints.h"
#include "inc/hw_types.h"
#include "driverlib/ssi.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/interrupt.h"
#include "driverlib/adc.h"
#define PI 3.14
#定义长度4096
int16_t SinData[length];
空正弦(空)
{
uint32_t i;
for (I=0;I<长度;I++)
{
浮点数=((2 *π/(长度))* i);//2 *π* 4096 = 52429
SinData[I]= 2048*sin (radian);
}
}
int main (空)
{
uint32_t ui32Index;
uint32_t DAC_Val;
易失性浮点 ui32Data;
正弦();
SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA5_SSI0TX);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5|GPIO_PIN_3|GPIO_PIN_2);
SSIConfigSetExpClk (SSI0_BASE、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_0、SSI_MODE_MASTER、10000、 16);
SSIEnable (SSI0_BASE);
while (1)
{
for (ui32Index = 0;ui32Index < length;ui32Index++)
{
ui32Data = SinData[ui32Index];
DAC_Val = 0x3000;
DAC_Val |=(SinData[ui32Index]& 0x00000FFF);//在左侧和右侧操作数之间按位或,并将结果分配给左侧操作数
SSIDataPut (SSI0_BASE、DAC_Val);
while (SSIBusy (SSI0_BASE);
如果(ui32Index>=length-1)
{
ui32Index=0;
}
}
}
}