使用 HAL 进行 STM32L0 的 UART 环回测试

伊利亚

我是 MCU 编程的新手。我想使用 HAL 测试 UART 环回(镜像)。IAR 项目由 CubeMX 为 STM32L071RZT6 生成。此代码位于主要的永恒循环中:

HAL_UART_Transmit(&huart2, str1, 5, 1000); HAL_UART_Receive(&huart2, str2, 5, 1000);

我只得到 str2 中填充的第一个元素(以空字符结尾的字符串)。我该如何解决?

/* USART2 init function */
 static void MX_USART2_UART_Init(void)
{

   huart2.Instance = USART2;
   huart2.Init.BaudRate = 115200;
   huart2.Init.WordLength = UART_WORDLENGTH_8B;
   huart2.Init.StopBits = UART_STOPBITS_1;
   huart2.Init.Parity = UART_PARITY_NONE;
   huart2.Init.Mode = UART_MODE_TX_RX;
   huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
   huart2.Init.OverSampling = UART_OVERSAMPLING_16;
   huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
   huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
   if (HAL_UART_Init(&huart2) != HAL_OK)
   {
    _Error_Handler(__FILE__, __LINE__);
   }

}
JMA

您不能同时发送和接收。HAL_UART_Transmit是一个阻塞函数,所以当函数返回时数据已经发送。当你调用HAL_UART_Receive数据时已经收到。你应该做这样的事情:

HAL_UART_Receive_IT(&huart2, str2, 5);
HAL_UART_Transmit(&huart2, str1, 5, 1000);

您可以通过中断或 DMA 来完成,但您应该在发送之前开始接收。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用超级测试,摩卡和模型进行环回测试

来自分类Dev

STM32F4 UART HAL驱动程序

来自分类Dev

为什么stm32nucleo板uart使用HAL_UART_Receive_IT将近三四百次后仍无法接收消息

来自分类Dev

如何重置STM32 HAL UART驱动程序(HAL)状态?

来自分类Dev

使用HAL驱动程序在stm32上进行EEPROM仿真

来自分类Dev

带有HAL库的STM32F4-Discovery(STM32F429ZIT6)上的RS232(UART)吗?

来自分类Dev

使用 HSE 的 STM32L152 UART 波特率减半

来自分类Dev

我们可以为方便起见编辑回调函数 HAL_UART_TxCpltCallback 吗?

来自分类Dev

如何使用TTCP或IPERF执行网络环回测试?

来自分类Dev

使用echo和cat测试串行环回的意外结果

来自分类Dev

使用事务回滚进行测试

来自分类Dev

如何使用HAL库读取和显示STM32F4的ADC值

来自分类Dev

使用HAL库的STM32外部闪存读取设备ID

来自分类Dev

如何使用C ++将字符存储在闪存STM32F4 HAL中?

来自分类Dev

使用 STM32f1xx_hal 板条箱时借用移动值错误

来自分类Dev

iptables规则进行环回

来自分类Dev

使用Eclipse在STM32 Nucleo中通过UART发送消息

来自分类Dev

强制UART进行无线操作

来自分类Dev

STM32F0 UART不起作用

来自分类Dev

中断和使用UART

来自分类Dev

如何使用STM32CUBEF4 HAL库通过i2c读出传感器数据?

来自分类Dev

使用SQLAchemy进行测试

来自分类Dev

使用 argumentCaptor 进行测试

来自分类Dev

在Windows中使用C的UART

来自分类Dev

不使用环回设备加密环回图像

来自分类Dev

使用uart.alt(1)时UART数据错误

来自分类Dev

STM32 HAL库简单C编码错误

来自分类Dev

STM32 SPI接收程序不带Hal

来自分类Dev

STM32 HAL库简单C编码错误