STM32F103 UART4 设置使能中断,程序无法运行
STM32F103 将UART4设置为使能中断则程序无法运行,注释掉USART_ITConfig( UART4, USART_IT_RXNE, ENABLE)程序就可以运行了,什么原因呢?
UART4配置代码:
void USART4_Init( unsigned int baud )
{
GPIO_InitTypeDef gpioInitStruct;
USART_InitTypeDef usartInitStruct;
NVIC_InitTypeDef nvicInitStruct;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
RCC_APB1PeriphClockCmd( RCC_APB1Periph_UART4, ENABLE );
gpioInitStruct.GPIO_Pin = GPIO_Pin_10;
gpioInitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
gpioInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOC, &gpioInitStruct );
gpioInitStruct.GPIO_Pin = GPIO_Pin_11;
gpioInitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
gpioInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &gpioInitStruct);
usartInitStruct.USART_BaudRate = baud;
usartInitStruct.USART_WordLength = USART_WordLength_8b;
usartInitStruct.USART_StopBits = USART_StopBits_1;
usartInitStruct.USART_Parity = USART_Parity_No;
usartInitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
usartInitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init( UART4, &usartInitStruct );
USART_Cmd( UART4, ENABLE );
// USART_ITConfig( UART4, USART_IT_RXNE, ENABLE); // 带着这行代码就无法运行,注释掉后可以运行!!!!!!
USART_ClearFlag( UART4, USART_FLAG_TC );
nvicInitStruct.NVIC_IRQChannel = UART4_IRQn;
nvicInitStruct.NVIC_IRQChannelPreemptionPriority = 3;
nvicInitStruct.NVIC_IRQChannelSubPriority = 3;
nvicInitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvicInitStruct);
}
请各位高手不吝指教,谢谢!
...全文
相关推荐
stm32f103串口BootLoader工程及APP工程(自己动手,亲测可用).rar
stm32f103串口BootLoader工程及APP工程,完整可以做实验,上位机用SecureCrt亲测好用,大家快来下载吧,挺不错的一个资源哦!!
rtthread 调通freemodbus STM32F103VCT6
rtthread 调通freemodbus STM32F103VCT6
stm32f103_eastred_8.rar
中联重科杯智慧农机的程序,STM32F103工程文件,有问题可以质询博主
IAP_64k_flash_最终版.zip_STM32F103_stm32_stm32 更新_stm32 flash_在线更新
STM32在线更新,代码测试完成,绝对可用。
STM32F103ZET6 UART4无法进入中断
调了两天UART4,现象是查询方式收发都正常。但是无法使用中断方式,仿真检查了UART4的寄存器配置完全正常,NVIC寄存器配置也正常。接收数据后NVIC的IABR也相应置位。


单片机/工控

