void Init_Uart(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
UART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_StructInit(&GPIO_InitStructure);
UART_DeInit(UART1);
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_UART1, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//GPIO_Mode_FLOATING;
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = UART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
USART_InitStructure.BaudRate = 9600;
USART_InitStructure.WordLength = UART_WordLength_8b;
USART_InitStructure.StopBits = UART_StopBits_1;
USART_InitStructure.Parity = UART_Parity_No ;
USART_InitStructure.HWFlowControl = UART_HWFlowControl_None;
USART_InitStructure.Mode = UART_GCR_RX | UART_GCR_TX;
UART_Init(UART1, &USART_InitStructure);
UART_ITConfig(UART1, UART_IT_RXIEN, ENABLE);
UART_Cmd(UART1, ENABLE);
}
uint16_t drx=0;
void UART1_IRQHandler(void)
{
if(RESET != UART_GetITStatus(UART1, UART_IT_RXIEN))
{
UART_ClearITPendingBit(UART1, UART_IT_RXIEN);
drx = UART_ReceiveData(UART1);
if(UART_GetITStatus(UART1, UART_IT_ERR) != RESET)
{
UART_ClearITPendingBit(UART1, UART_IT_ERR);
}
}
if(UART_GetITStatus(UART1, UART_IT_ERR) != RESET)
{
UART_ClearITPendingBit(UART1, UART_IT_ERR);
}
if(UART_GetITStatus(UART1, UART_IT_PE) != RESET)
{
UART_ClearITPendingBit(UART1, UART_IT_PE);
}
if(RESET != UART_GetITStatus(UART1, UART_OVER_ERR))
{
UART_ClearITPendingBit(UART1, UART_OVER_ERR);
}
}
请问哪里没有设置好?
|