1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于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 runn"); } } 通过上位机查看串口输出数据,若波特率设置为115200,则接收数据乱码。 若波特设置为57600,则串口接收数据正常。 这是什么原因呢? 2、系统延时精度问题: HAL_Delay(100); 经测试,时间系统延时为200ms,与设定延时参数相差2倍。 以上两个问题,有大牛能帮忙解答一下吗,谢谢! |
|
相关推荐
2个回答
|
|
看看时钟配置是否正常
|
|
|
|
在STM32Cubemx中创建FreeRTOS和UART任务时,可能会遇到一些问题。根据您提供的信息,这里有两个问题需要解决:
1. 串口波特率问题 您已经在STM32Cubemx中设置了USART3的波特率为115200。但是,如果您发现波特率不正确,可以尝试以下步骤来解决这个问题: 步骤1:检查时钟配置 确保您的系统时钟配置正确,因为波特率是基于系统时钟计算的。在STM32Cubemx中,您可以在“System Core”选项卡中找到时钟配置。 步骤2:检查USART初始化函数 确保您的USART初始化函数(MX_USART3_UART_Init)在FreeRTOS任务中被正确调用。您可以在任务的初始化代码中添加一些调试信息,以确保函数被调用。 步骤3:检查串口通信线 确保您的STM32开发板的USART3_TX和USART3_RX引脚与外部设备正确连接。 2. UART任务问题 您没有具体说明UART任务遇到的问题,但我将提供一些建议来帮助您解决可能的问题: 步骤1:确保FreeRTOS配置正确 在STM32Cubemx中,确保您已经正确配置了FreeRTOS。在“Middlewares”选项卡中,选择“FreeRTOS”并根据您的需求进行配置。 步骤2:创建UART任务 在FreeRTOS中,创建一个新的任务来处理UART通信。您可以使用xTaskCreate或xTaskCreateStatic函数来创建任务。确保为任务分配足够的堆栈空间和优先级。 步骤3:处理UART中断 为了在FreeRTOS中处理UART接收和发送,您需要配置UART中断。在STM32Cubemx中,您可以在“NVIC”选项卡中配置USART3的中断优先级。然后,在您的代码中,实现UART中断处理函数(例如:HAL_UART_RxCpltCallback)。 步骤4:调试和优化 如果UART任务仍然存在问题,您可以使用调试工具(如ST-Link)来检查代码的执行情况。此外,优化您的代码以减少任务切换和中断响应时间。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1820 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1634 浏览 1 评论
1104 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
740 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1692 浏览 2 评论
1951浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
756浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
587浏览 3评论
605浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
569浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:56 , Processed in 0.834607 second(s), Total 81, Slave 65 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号