串口配置完成可以发送但是无法接收
void USART1_Init(void) { GPIO_InitTypeDef GPIO_InitStructure={0}; USART_InitTypeDef USART_InitStructure={0}; NVIC_InitTypeDef NVIC_InitStructure={0}; /* 打开GPIO和USART部件的时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* 配置GPIO的模式和IO口 */ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; // 串口输出PA9(TX) GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // IO口频率 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; // 复用推挽输出 GPIO_Init(GPIOA,&GPIO_InitStructure); // 初始化 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; // 串口输入PA10(RX) GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;// 浮空输入 GPIO_Init(GPIOA,&GPIO_InitStructure); // 初始化 /* 配置串口硬件参数 */ USART_InitStructure.USART_BaudRate = 115200; /* 波特率 */ USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); /* 使能串口1中断 */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /* 使能串口空闲中断 */ USART_Cmd(USART1, ENABLE); /* 使能串口 */ }
void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //中断产生 { uint8_t RxData = USART_ReceiveData (USART1); USART_ClearITPendingBit(USART1,USART_IT_RXNE); } }
热门产品 :
CH334/5: USB HUB控制器芯片