你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32HAL库 串口复用配置问题

[复制链接]
西奥伟 提问时间:2018-11-29 17:12 /
本帖最后由 西奥伟 于 2018-12-1 17:58 编辑

今天遇到一个很棘手的问题,我使用的芯片型为STM32F030K6,如果我使用CubeMX直接默认生成串口1中断的通信代码,能够正常实现数据的收发。(注:正常情况下PA2和PA3分别是串口1的发送和接收引脚,用示波器检测有信号出来),现在由于项目中的实际需求,需要将PA9和PA10复用为串口1的发送和接收引脚,单步调试能够看到数据的发送,能够进入中断,但是,用示波器测试PA9引脚,一直没有数据发送出来,接收也是没有信号。(在此请各位论坛坛友一起讨论下可能是哪些问题造成的)

1

1

2

2

3

3


4

4

收藏 评论2 发布时间:2018-11-29 17:12

举报

2个回答
wenyangzeng 回答时间:2018-11-29 17:34:58
楼主好像应该先配置默认的USERT1,再修改PA9、PA10为映像,这样在STM32F0xx_hal_msp.C文件里才有对PA9、PA10的初始化:
  1. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  2. {

  3.   GPIO_InitTypeDef GPIO_InitStruct;
  4.   if(huart->Instance==USART1)
  5.   {
  6.   /* USER CODE BEGIN USART1_MspInit 0 */

  7.   /* USER CODE END USART1_MspInit 0 */
  8.     /* Peripheral clock enable */
  9.     __HAL_RCC_USART1_CLK_ENABLE();
  10.   
  11.     /**USART1 GPIO Configuration   
  12.     PA9     ------> USART1_TX
  13.     PA10     ------> USART1_RX
  14.     */
  15.     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  16.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  17.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  18.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  19.     GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
  20.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  21.   /* USER CODE BEGIN USART1_MspInit 1 */

  22.   /* USER CODE END USART1_MspInit 1 */
  23.   }

  24. }
复制代码


西奥伟 回答时间:2018-11-29 17:46:20
wenyangzeng 发表于 2018-11-29 17:34
楼主好像应该先配置默认的USERT1,再修改PA9、PA10为映像,这样在STM32F0xx_hal_msp.C文件里才有对PA9、PA10 ...

我做了配置的,刚才没有发出来那张图片

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版