GPIO_InitTypeDef GPIO_InitStruct;
UART_InitTypeDef UART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_UART1, ENABLE);
UART_StructInit(&UART_InitStruct);
UART_InitStruct.BaudRate = Baudrate;
UART_InitStruct.WordLength = UART_WordLength_8b;
UART_InitStruct.StopBits = UART_StopBits_1;
UART_InitStruct.Parity = UART_Parity_No;
UART_InitStruct.HWFlowControl = UART_HWFlowControl_None;
UART_InitStruct.Mode = UART_Mode_Rx | UART_Mode_Tx ;
UART_Init(UART1, &UART_InitStruct);
// USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
// USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
// UART_Cmd(UART1, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_7);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_7);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// NVIC_InitStruct.NVIC_IRQChannel = UART1_IRQn;
// NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
// NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
// NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
// NVIC_Init(&NVIC_InitStruct);
UART_Cmd(UART1, ENABLE);
int fputc(int ch, FILE *f)
{
UART_SendData(UART1, (uint8_t)ch);
while (RESET == UART_GetFlagStatus(UART1, UART_FLAG_TXC))
{
}
return (ch);
}
---------------------
作者:聪聪哥哥
链接:https://bbs.21ic.com/icview-3387474-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。