用CUBEMX配置了USART3,初始化中有个remap函数,debug到那仿真器就会掉

2019-10-14 23:34发布

  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的电平,都是高电平。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
mupb
1楼-- · 2019-10-15 03:28
自顶下吧。。。
正点原子
2楼-- · 2019-10-15 08:39
除非你的配置影响到了JTAG./SWD口的通信,不然是不会出现这个情况的。你检查下代码。
mupb
3楼-- · 2019-10-15 12:30
正点原子 发表于 2017-2-24 18:58
除非你的配置影响到了JTAG./SWD口的通信,不然是不会出现这个情况的。你检查下代码。

我也觉得应该是影响了仿真器,可是IO口并没有冲突

一周热门 更多>