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

基于STM32Cubemx创建FreeRTOS案例UART波特率和系统Delay问题?

[复制链接]
林中独步 提问时间:2016-6-28 14:37 /
基于STM32Cubemx创建FreeRTOS,创建UART任务,经过测试发现有以下两个问题:
1、串口波特率问题:
     在STM32Cubemx中串口设置如下:
/* USART3 init function */

void MX_USART3_UART_Init(void)
{

  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.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart3) != HAL_OK)
  {
    Error_Handler();
  }

}

主程序中UART任务如下:
void Uart_test_Thread()
{
  for(;;)
    {
    //osDelay(50);
        HAL_Delay(100);
    printf("Uart_test_Thread run\n");
    }

}
通过上位机查看串口输出数据,若波特率设置为115200,则接收数据乱码。

若波特设置为57600,则串口接收数据正常。

这是什么原因呢?

2、系统延时精度问题:
HAL_Delay(100);  经测试,时间系统延时为200ms,与设定延时参数相差2倍。

以上两个问题,有大牛能帮忙解答一下吗,谢谢!

收藏 评论1 发布时间:2016-6-28 14:37

举报

1个回答
yklstudent 回答时间:2016-6-28 20:40:51
看看时钟配置是否正常

所属标签

相似问题

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