void USART_Init_Config(void)
{
GPIO_InitTypeDef GPIO_Struct_Iint;
USART_InitTypeDef USART__Struct_Init;
//开时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
GPIO_Struct_Iint.GPIO_Mode=GPIO_Mode_AF;
GPIO_Struct_Iint.GPIO_OType=GPIO_OType_PP;
//GPIO_Struct_Iint.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Struct_Iint.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Struct_Iint.GPIO_Pin=GPIO_Pin_9;//RXD
GPIO_Init(GPIOA,&GPIO_Struct_Iint);
GPIO_Struct_Iint.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Struct_Iint.GPIO_Pin=GPIO_Pin_10;//TXD
GPIO_Init(GPIOA,&GPIO_Struct_Iint);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
USART__Struct_Init.USART_BaudRate=115200;
USART__Struct_Init.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART__Struct_Init.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART__Struct_Init.USART_Parity=USART_Parity_No;
USART__Struct_Init.USART_StopBits=USART_StopBits_1;
USART__Struct_Init.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART__Struct_Init);
USART_Cmd(USART1, ENABLE);
}
```c
劳烦大佬们看一下,为什么我的USART1 这样配置接收不了数据啊,我重新定向了fputc函数,想用printf 函数在串口调式助手上接受数据,但是接收不了 |
从初始化看代码,没有什么问题。
请检查一下:
1、串口线的RX和TX是否接反;
2、重定向函数具体代码是否正确?
如果能正常发送了,剩下的就是重定向的问题。
似乎编译器新版本的重定向方式有些调整,需要具体再看。