新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2020-3-4
- 在线时间
- 2 小时
|
1金钱
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);
}
请各位高手不吝指教,谢谢!
|
|