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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版