Other Parts Discussed in Thread: TM4C129ENCPDT
工具/软件:Code Composer Studio
en_transferStat_t ADC_Init(){
SPI_Params slaveSpiParams;
en_transferStat_t en_transferOk;
SPI_Params_init (&slaveSpiParams);
slaveSpiParams.mode = SPI_MASTER;
/*将 SPI 句柄初始化为 ADC*/的默认主控器
masterAdc1 = SPI_open (Board_SPI3、NULL);
if (masterAdc1 ==空)
{
System_abort ("初始化 SPI ADC1时 出错");
返回 TRANSFER_FAILURE;
}
其他
{
System_printf ("SPI 初始化 ADC1\n");
}
/*为配置寄存器启动 SPI 传输*/
BL_transferOk = ADC_SPI_WRITE (masterAdc1、CONFIGREG_ADDRESS、U16_command1);
ADC_ReadReg (masterAdc1、CONFIGREG_ADDRESS、pu16_Result);
BL_transferOk = ADC_SPI_WRITE (masterAdc1、range_register、U16_command2);
ADC_ReadReg (masterAdc1、range_register、pu16_Result);
SPI_CLOSE (masterAdc1);
}
/*********
用途:通过 SPI 将数据写入寄存器
参数:masterSpi:SPI 处理程序
U8_regAddress:用于写入数据的寄存器地址
u16_regData:要写入的数据
返回:成功/失败
注意:返回1字节传输状态
秘书长的报告 /
uint8_t ADC_SPI_WRITE (SPI_Handle masterSpi、
uint8_t u8_regAddress、
uint16_t u16_regData)
{
uint8_t au8_buf[2]、u8_ret = 1;
/*安排寄存器地址和数据通过 SPI*/发送
au8_buf[0]= register_write |((u8_regAddress & 0x3F)<< logical_shif_one)|(((U16_regData & MASK_0x100)>> logical_shif_eight);
au8_buf[1]=(U16_regData 和 MASK_0xFF);
SPI_WRITE_AND_READ (masterSpi、au8_Buf、2);
返回 u8_ret;
}
/*********
用途:通过 SPI 从寄存器读取数据或将数据写入寄存器
参数:masterSpi:SPI 处理程序
uint8_t bytes_number :否 要写入的字节数
u16_regData:
返回:成功/失败
注意:返回1字节传输状态
秘书长的报告 /
uint8_t SPI_WRITE_AND_READ (SPI_Handle masterSpi、
uint8_t *数据、
uint8_t bytes_number)
{
uint32_t i;
uint8_t TX[2];
uint8_t rx[2];
对于(i = 0;i < bytes_number;i++){
TX[i]=数据[i];
}
SPI_Transaction masterTransaction;
masterTransaction.count = bytes_number;
masterTransaction.txBuf =(ptr) TX;
masterTransaction.rxBuf =(ptr) rx;
GPIO_WRITE (ADC_CS、Board_GPIO_OFF);
SPI_transfer (masterSpi、masterTransaction);
GPIO_WRITE (ADC_CS、Board_GPIO_ON);
对于(i = 0;i < bytes_number;i++)
DATA[i]= Rx[i];
返回1;
}

