[STM32U0] STM32U083测评】-02-LPUART测试

[复制链接]
3492|10
 楼主| shenxiaolin 发表于 2024-4-28 11:45 | 显示全部楼层 |阅读模式
前段时间做了一下IO的测试,至少证明环境搭建是没有问题的,今天来测试一下我们LPUART,本来是打算用例程然后外加串口来进行测试的,但是现在少了一个外接的串口,我查了一下原理图,发现是接的是PA2和PA3,这个正好也是LPUART1的复用的引脚。
01-硬件连接图.png

02-硬件LPUART的对应关系.png

只要硬件支持了,就支持修改映射就行了,在此之前,我们需要修改Hall的配置,开启LPUART和LPTIM的使能

1,修改Hall库.png

完成了之后我们就自己建立工程,

3.png

然后就是LPUART的初始化程序

具体的代码如下:

  1. #include "LP_UART.h"


  2. UART_HandleTypeDef LP_UART1;

  3. void LP_UART_Init(void)
  4. {
  5.   __HAL_RCC_LPUART1_CLK_ENABLE();
  6.         __HAL_RCC_GPIOA_CLK_ENABLE();  
  7.        
  8.         //--设置复用---
  9.         GPIO_InitTypeDef  gpio_init_structure;
  10.           /* Configure USART Tx as alternate function */
  11.   gpio_init_structure.Pin       = GPIO_PIN_2;
  12.   gpio_init_structure.Mode      = GPIO_MODE_AF_PP;
  13.   gpio_init_structure.Speed     = GPIO_SPEED_FREQ_HIGH;
  14.   gpio_init_structure.Pull      = GPIO_PULLUP;
  15.   gpio_init_structure.Alternate = GPIO_AF8_LPUART1;
  16.   HAL_GPIO_Init(GPIOA, &gpio_init_structure);

  17.   /* Configure USART Rx as alternate function */
  18.   gpio_init_structure.Pin       = GPIO_PIN_3;
  19.   gpio_init_structure.Mode      = GPIO_MODE_AF_PP;
  20.   gpio_init_structure.Alternate = GPIO_AF8_LPUART1;
  21.   HAL_GPIO_Init(GPIOA, &gpio_init_structure);
  22.        
  23.        
  24.        
  25.   LP_UART1.Instance = LPUART1;
  26.   LP_UART1.Init.BaudRate = 115200;
  27.   LP_UART1.Init.WordLength = UART_WORDLENGTH_8B;
  28.   LP_UART1.Init.StopBits = UART_STOPBITS_1;
  29.   LP_UART1.Init.Parity = UART_PARITY_NONE;
  30.   LP_UART1.Init.Mode = UART_MODE_TX_RX;
  31.   LP_UART1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  32.   LP_UART1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  33.   LP_UART1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  34.   LP_UART1.FifoMode = UART_FIFOMODE_DISABLE;
  35.   if (HAL_UART_Init(&LP_UART1) != HAL_OK)
  36.   {

  37.   }
  38.   if (HAL_UARTEx_SetTxFifoThreshold(&LP_UART1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
  39.   {

  40.   }
  41.   if (HAL_UARTEx_SetRxFifoThreshold(&LP_UART1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
  42.   {

  43.   }
  44.   if (HAL_UARTEx_DisableFifoMode(&LP_UART1) != HAL_OK)
  45.   {

  46.   }
  47. }


  48. void LP_UART_SendData(unsigned char *Data,unsigned int Len)
  49. {
  50.    HAL_UART_Transmit(&LP_UART1,Data,Len,200);
  51. }

这个代码写好之后木就是Main函数了,其实很简单,闪个灯,发个消息就行了。

  1. int main(void)
  2. {

  3.   HAL_Init();


  4.   SystemClock_Config();

  5.   __HAL_RCC_GPIOA_CLK_ENABLE();
  6.   /* -2- Configure IO in output push-pull mode to drive external LEDs */
  7.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  8.   GPIO_InitStruct.Pull  = GPIO_NOPULL;
  9.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

  10.   GPIO_InitStruct.Pin = GPIO_PIN_5;
  11.   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  12.         LP_UART_Init();
  13.   while (1)
  14.   {

  15.     HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  16.     HAL_Delay(500);
  17.                 LP_UART_SendData("This is LPUART Demo!\r\n",22);

  18.   }
  19.   /* USER CODE END 3 */<img src="https://bbs.21ic.com/forum.php?mod=image&aid=2246468&size=300x300&key=65d009f6634f4b5c&nocache=yes&type=fixnone" border="0" aid="attachimg_2246468" alt="">
  20. }


好了,我们来看看实际效果


这次的测试就到这里,LPUART的代码欢迎大家验证指教。

3 测试效果.png
中国龙芯CDX 发表于 2024-4-28 17:33 | 显示全部楼层
LPUART,全称为Low Power UART,是一种低功耗串行通信接口。它主要应用在功耗限制且通信距离短的场景中。
mmuuss586 发表于 2024-4-29 09:18 | 显示全部楼层
这个是新出的STM32吧
WoodData 发表于 2024-4-29 10:32 | 显示全部楼层
向大佬学习。看看低功耗模式下LPUART使用有啥注意的
 楼主| shenxiaolin 发表于 2024-4-29 10:32 | 显示全部楼层
mmuuss586 发表于 2024-4-29 09:18
这个是新出的STM32吧

是的游总
 楼主| shenxiaolin 发表于 2024-4-29 10:35 | 显示全部楼层
WoodData 发表于 2024-4-29 10:32
向大佬学习。看看低功耗模式下LPUART使用有啥注意的

欢迎大佬捧场
micoccd 发表于 2024-4-29 14:00 | 显示全部楼层
功耗表现有没有
yellow555 发表于 2024-4-29 21:08 来自手机 | 显示全部楼层
接口是少在了哪里?
 楼主| shenxiaolin 发表于 2024-4-30 07:38 | 显示全部楼层
yellow555 发表于 2024-4-29 21:08
接口是少在了哪里?

如果你用其他的串口,就还需要外接串口线,试用串口1 的话就直接供电、调试、串口都是一个USB接口就可以了,不用外接串口调试线。
 楼主| shenxiaolin 发表于 2024-4-30 07:39 | 显示全部楼层
yellow555 发表于 2024-4-29 21:08
接口是少在了哪里?

没有测试
meiyaolei 发表于 2024-6-27 19:54 | 显示全部楼层
大佬写的非常详细,LPUART使用方法都上传,只是LPUART使用还有哪些需要注意。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:运达电气-产品经理
简介:毕业于西南科技大学,从事MCU、MPU开发工作近8年,熟悉嵌入式软硬件开发流程,产品管理以及现场项目管理。

94

主题

1359

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部