//#include "debug.h" #include "spi.h" #include "i2c_slave.h" #define RVRS_Pin GPIO_Pin_3 #define SHDWN_Pin GPIO_Pin_2 #define SHDWN_AND_RVRS_Port GPIOD u8 Data[3] = {0}; /********************************************************************* * @fn main * * @brief Main program. * * @return none */ int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); SystemCoreClockUpdate(); Delay_Init(); DAC_SPI_Init(); //戒忘扭抉抖扶快扶我快 扶忘扼找把抉快抗 GPIO_InitTypeDef GPIO_InitStructure={0}; GPIO_InitStructure.GPIO_Pin = SHDWN_Pin | RVRS_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(SHDWN_AND_RVRS_Port, &GPIO_InitStructure); GPIO_WriteBit(SHDWN_AND_RVRS_Port, SHDWN_Pin, Bit_SET); I2C_Slave_Init(); u8 reverse_f=0; u8 data_spi[3]={0}; while(1) { data_spi[0]=Data[2]; data_spi[1]=Data[1]; data_spi[2]=Data[0]; __NOP(); DAC_CHIP_SELECT_LOW DAC_Transmit(SPI1,data_spi, 3); DAC_CHIP_SELECT_HIGH I2C_slave_rcv(I2C1, Data, 3); if( Data[2] == 0x4 && reverse_f==0){ reverse_f = 1; GPIO_WriteBit(SHDWN_AND_RVRS_Port, SHDWN_Pin, Bit_RESET); Delay_Ms(100); GPIO_WriteBit(SHDWN_AND_RVRS_Port, RVRS_Pin, Bit_SET); Delay_Ms(1); GPIO_WriteBit(SHDWN_AND_RVRS_Port, SHDWN_Pin, Bit_SET); }else if (Data[2]==0 && reverse_f==1){ reverse_f = 0; GPIO_WriteBit(SHDWN_AND_RVRS_Port, SHDWN_Pin, Bit_RESET); Delay_Ms(100); GPIO_WriteBit(SHDWN_AND_RVRS_Port, RVRS_Pin, Bit_RESET); Delay_Ms(1); GPIO_WriteBit(SHDWN_AND_RVRS_Port, SHDWN_Pin, Bit_SET); } } }