STM32Hal库学习11.23

STM32Hal库学习11.23

1.使用Printf重定义函数时,如果发现已经定义了fputc函数,但是仍没有输出,但是不报错,可能是没有定义__io_putchar

// 实现__io_putchar函数,用于系统调用层的输出重定向
int __io_putchar(int ch)
{
  // 阻塞式发送1字节数据(通过USART1发送,超时时间100ms)
  HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 100);
  return ch;
}
// 重定义 fputc 函数:printf 输出数据时,自动调用该函数通过串口发送
int fputc(int ch, FILE *f)
{
  return __io_putchar(ch);  // 直接调用__io_putchar
}

2.使用某个外设时,需要开启对应的外设时钟。

  1. 声明句柄UART_HandleTypeDef huart1;
  2. 初始化Hal库HAL_Init();
  3. 配置系统时钟SystemClock_Config();
  4. 初始化IO口,使能IO口对于GPIOX时钟。
  5. 外设初始化。
//使能串口1时钟
__HAL_RCC_USART1_CLK_ENABLE();
//...初始配置
//初始化
HAL_UART_Init(&huart1);

3.VS Code开发STM32单片机,Hal库

  • BUILD ANALYZER不显示内存使用情况:
    可以正常使用CMake编译成功,但是BUILD ANALYZER报错,无使用情况进度条,可能是CMakeList.txt中项目名称没有改,改过来和文件夹名一致即可。
    Pasted image 20251123225733
  • 删除缓存并重新配置,并重新生成。
    image
posted @ 2025-11-23 23:00  小智001  阅读(0)  评论(0)    收藏  举报