GPIO_InitTypeDef GPIO_InitStructure; SSP_InitTypeDef SSP_InitStructure;
/* Enable the __SSP0 Clock */ SCU_APBPeriphClockConfig(__SSP0 ,ENABLE);
/* Enable the __SSP1 Clock */ SCU_APBPeriphClockConfig(__SSP1 ,ENABLE);
/* Enable the __GPIO2 for SSP0 Clock */ SCU_APBPeriphClockConfig(__GPIO1 ,ENABLE);
/* Enable the __GPIO3 for SSP1 Clock */ SCU_APBPeriphClockConfig(__GPIO5 ,ENABLE);
/* SSP0 and SSP1 pins Config */ //P5.4 P5.5 P5.6 P5.7 // GPIO_DeInit(GPIO5); /*Gonfigure SSP0_CLK, SSP0_MOSI, SSP0_nSS pins */ GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2 ; GPIO_Init (GPIO5, &GPIO_InitStructure);
/*Gonfigure SSP0_MISO pin GPIO5.6*/ GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Enable; GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1 ; GPIO_Init (GPIO5, &GPIO_InitStructure);
//P1.0 P1.1 P1.2 P1.3
GPIO_DeInit(GPIO1); /*Gonfigure SSP0_MISO pin GPIO1.2*/ GPIO_InitStructure.GPIO_Direction = GPIO_PinInput; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Enable; GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1 ; GPIO_Init (GPIO1, &GPIO_InitStructure);
/*Gonfigure SSP0_CLK, SSP0_MOSI, SSP0_nSS pins */ GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull ; GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt3 ; GPIO_Init (GPIO1, &GPIO_InitStructure); /* SSP0 configuration */ SSP_DeInit(SSP0); SSP_InitStructure.SSP_FrameFormat = SSP_FrameFormat_Motorola; SSP_InitStructure.SSP_Mode = SSP_Mode_Master; SSP_InitStructure.SSP_CPOL = SSP_CPOL_Low; SSP_InitStructure.SSP_CPHA = SSP_CPHA_2Edge; SSP_InitStructure.SSP_DataSize = SSP_DataSize_16b; SSP_InitStructure.SSP_ClockRate = 5; SSP_InitStructure.SSP_ClockPrescaler = 2; SSP_Init(SSP0, &SSP_InitStructure);
SSP_DeInit(SSP1); SSP_InitStructure.SSP_FrameFormat = SSP_FrameFormat_Motorola; SSP_InitStructure.SSP_Mode = SSP_Mode_Master; SSP_InitStructure.SSP_CPOL = SSP_CPOL_Low; SSP_InitStructure.SSP_CPHA = SSP_CPHA_2Edge; SSP_InitStructure.SSP_DataSize = SSP_DataSize_16b; SSP_InitStructure.SSP_ClockRate = 5; SSP_InitStructure.SSP_ClockPrescaler = 2; SSP_Init(SSP1, &SSP_InitStructure);
/* SSP0 enable */ SSP_Cmd(SSP0, ENABLE);
/* SSP1 enable */ SSP_Cmd(SSP1, ENABLE);
当执行至 SSP_InitStructure.SSP_CPHA = SSP_CPHA_2Edge; 后CPU死机. 连JTAG都不认了!需要重新上电后才能再次使用. 使用的库是最新从官方网站下载的.V2.0 右下角的版本号是:G 不知是不是芯片上的问题.
|