else if(uartHandle->Instance==USART3)
{
/* USER CODE BEGIN USART3_MspInit 0 */
/* USER CODE END USART3_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART3_CLK_ENABLE();
/**USART3 GPIO Configuration
PD8 ------> USART3_TX
PD9 ------> USART3_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
__HAL_AFIO_REMAP_USART3_ENABLE(); //就是这个函数,我debug的时候,一运行到这个函数,仿真器便会自动断开。查了这个函数,是使能 FULL_MAP(完全映射),使能后就是PD8 和 PD9。
}
硬件上,板子的PD8和PD9,一开始是连接在FPGA上的,FPGA并没有用到这两个IO,未做处理,MCU也未做处理。现在想用usart3做一下上位机的串口通信测试,于是在板子PD8和PD9的过孔处接了两根线引出了TX RX,外加一根地线。可是问题现在就是初始化过不了,用cubemx直接生成的代码。对了,芯片是103VFTx(100pin)。
小弟不知道是不是配置不正确,还是怎么回事。PD口的时钟在GPIO.C中已使能,使能了usart3的时钟,使能了 完全重映射 ,实在不知道哪里错了。对了,闲置状态下,我测了下 RX TX的电平,都是高电平。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我也觉得应该是影响了仿真器,可是IO口并没有冲突
一周热门 更多>