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

STM32G070 usart3无法初始化

[复制链接]
哪个是long 提问时间:2022-12-29 00:41 / 未解决
使用CubeMX,新建 工程,使用内置时钟64Mhz主频(也测试过外部时钟、其它主频),只创建一个usart3(串口4也不行),在线监控程序运行至MX_USART3_UART_Init();就卡住了。没有自己添加程序,完全是cubemx生成。串口1和串口2没问题,这3和4 服了。大神帮帮忙,谢谢!

cubmx

cubmx
收藏 评论10 发布时间:2022-12-29 00:41

举报

10个回答
1+1=2 回答时间:2022-12-29 08:34:27
看看你的波特率是不是设置的不对
哪个是long 回答时间:2022-12-29 09:50:06
1+1=2 发表于 2022-12-29 08:34
看看你的波特率是不是设置的不对

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART3_UART_Init(); //卡在这里
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

//usart.c里的初始化
void MX_USART3_UART_Init(void)
{

  /* USER CODE BEGIN USART3_Init 0 */

  /* USER CODE END USART3_Init 0 */

  /* USER CODE BEGIN USART3_Init 1 */

  /* USER CODE END USART3_Init 1 */
       
  huart3.Instance = USART3;
  huart3.Init.BaudRate = 115200;
  huart3.Init.WordLength = UART_WORDLENGTH_8B;
  huart3.Init.StopBits = UART_STOPBITS_1;
  huart3.Init.Parity = UART_PARITY_NONE;
  huart3.Init.Mode = UART_MODE_TX_RX;
  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart3.Init.OverSampling = UART_OVERSAMPLING_16;
  huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart3) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN USART3_Init 2 */

  /* USER CODE END USART3_Init 2 */

}

xmshao 回答时间:2022-12-29 10:02:45
会不会你硬件上哪里有问题?使用CubeMx做个初始化一般来讲不会有啥问题。初始化代码都执行不下去,往往可能是电源、时钟方面的基础问题,就像当前新冠一样,基础疾病往往很致命。不妨多检查下与UART3连接有关的线路。
废鱼 回答时间:2022-12-29 10:17:28
仿真看一下是不是进入Error_Handler错误处理了。如果是这样,检查ticks是否正常工作。
哪个是long 回答时间:2022-12-29 10:40:24
xmshao 发表于 2022-12-29 10:02
会不会你硬件上哪里有问题?使用CubeMx做个初始化一般来讲不会有啥问题。初始化代码都执行不下去,往往可能 ...

用的最小系统开发板测试的,没有接外设,初始化就卡住,usart1和2没有问题,换了usart3的引脚也不行,内部时钟外部时钟都试过
哪个是long 回答时间:2022-12-29 10:43:34
stm32g070testusart.zip (19.96 MB, 下载次数: 5)
哪个是long 回答时间:2022-12-29 11:25:02
废鱼 发表于 2022-12-29 10:17
仿真看一下是不是进入Error_Handler错误处理了。如果是这样,检查ticks是否正常工作。
...

帮忙看看,上传了例程,谢谢
1+1=2 回答时间:2022-12-30 08:35:46
哪个是long 发表于 2022-12-29 09:50
/* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

你是不是用操作系统了?还是跑的裸机?串口初始化的时候有时候会有问题,是因为堆栈设置的太小了,你设置大点试一下

哪个是long 回答时间:2022-12-30 15:05:49
1+1=2 发表于 2022-12-30 08:35
你是不是用操作系统了?还是跑的裸机?串口初始化的时候有时候会有问题,是因为堆栈设置的太小了,你设置 ...

裸机,就软件生成的串口初始化,什么都没改,串口3就是不能初始化,能不能给个串口123都能用的例程?谢谢
四季 回答时间:2023-1-17 15:36:25
楼主问题解决了么,可以试一下RX上拉一下,我之前项目rx不上拉,uart3 uart4的接受是有问题的,串口会卡死。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版