好多网友都说是软件问题的概率大。
我把初始化贴出来看哪里不对。
/*
**************************************************************************
*º¯ÊýÔÐÍ£ºvoid CPU_Init(void)
*Èë¿Ú²ÎÊý£ºÎÞ
*³ö¿Ú²ÎÊý£ºÎÞ
*º¯Êý¹¦ÄÜ£º¹Ü½Å³õʼ»¯
************************************************************************
*/
void CPU_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
/* ÍâÉèʱÖÓ³õʼ»¯ */
// GPIOA, GPIOB, GPIOC, AFIOÔÊÐí, GPIOD, GPIOE²»ÓÃ, GPIOF, GPIOGûÓÐ
// TIM1 Periph clock enable ¶¨Ê±ÖжÏÓÃ
// USART1, ÔÊÐí
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO |
RCC_APB2Periph_TIM1 | RCC_APB2Periph_USART1 ,ENABLE);
//UART2, UART3 ÔÊÐí, SPI2 ½ûÖ¹, I2C1, I2C2²»ÓÃ, WWDG ½ûÖ¹, CRCÔÊÐí, USB, CAN, BKP, DAC, µçÔ´½Ó¿Ú²»ÓÃ
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2| RCC_APB1Periph_USART3|
RCC_APB1Periph_CEC | RCC_APB1Periph_PWR | RCC_APB1Periph_USB , ENABLE);
/* GPIOÅäÖÃ */
//GPIOA
/********************************************************************************/
/*PA1->RF_RSTN PA2->UART2_TXD PA3->UART2_RXD PA4->RF_SSN PA8->LED */
/*PA9->UART1_TXD PA10->UART1_RXD PA11->USB_DM PA12->USB_DP PA14->SAMV_PWR */
/********************************************************************************/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_6 |
GPIO_Pin_7 | GPIO_Pin_10 | GPIO_Pin_13 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉÏÀÊäÈë
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //ÏÂÀÊäÈë
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_8 | GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_9 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //¸´ÓÃÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//GPIOB
/**************************************************************************/
/*PB0->RF_STAND PB2->BOOT1 PB3->SAM_TF PB4->SAM_RT */
/*PB6->SAM_SCK PB7->SAM_DAT */
/**************************************************************************/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //¸¡¿ÕÊäÈë
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 |
GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉÏÀÊäÈë
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //ÏÂÀÊäÈë
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_4 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//GPIOC
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉÏÀÊäÈë
GPIO_Init(GPIOC, &GPIO_InitStructure);
//ÉèÖÃÊä³ö¿Úµçƽ
//AFIO->MAPR|=(0X04<<24); //¹Ø±ÕJTAG-DP,¹Ø±ÕSW-DP;
GPIO_SetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_14);
GPIO_ResetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_8);
GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_4);
//Set the Vector Table base address at 0x08000000
NVIC_SetVectorTable(NVIC_VectTab_FLASH, NVIC_APP_OFFSET);
//Configure the Priority Group to 2 bits
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
}
|