照如下配置,只能发送数据却不能接收数据,请大虾帮忙看看配置上有什么问题吗?
[mw_shl_code=c,true]GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体
USART_InitTypeDef USART_InitStructure; //定义USART初始化结构体
/*时钟配置不需要配置AFIO 只要配置为复用功能即可*/
GPIO_PinAFConfig(GPIOC,GPIO_PinSource10,GPIO_AF_UART4); //配置PA9复用连接到USART1
GPIO_PinAFConfig(GPIOC,GPIO_PinSource11,GPIO_AF_UART4); //配置PA10复用连接到USART1
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; //设置初始化GPIO为PIN9
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//设置GPIO的速度为50MHz
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//设置GPIO模式为复用模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//设置GPIO输出类型为推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //设置GPIO为连接上拉电阻
GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化GPIOA的PIN9
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; //设置初始化GPIO为PIN10
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF; //设置GPIO的模式为复用模式
GPIO_Init(GPIOC,&GPIO_InitStructure); //初始化GPIOA的PIN10
USART_InitStructure.USART_BaudRate=115200; //设置USART的波特率为19200
USART_InitStructure.USART_Parity=USART_Parity_No;//设置USART的校验位为None
USART_InitStructure.USART_WordLength=USART_WordLength_8b; //设置USART的数据位为8bit
USART_InitStructure.USART_StopBits=USART_StopBits_1; //设置USART的停止位为1
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; //失能硬件流控制
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //设置USART的模式为发送接收模式
USART_Init(UART4, &USART_InitStructure);
USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);
USART_Cmd(UART4, ENABLE);[/mw_shl_code]
[mw_shl_code=c,true]
NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
配置是正确的,谢谢提醒!
一周热门 更多>