[STM32H7] 【STM32H7S78-DK测评】测评之四:串口打印测试

[复制链接]
3251|3
 楼主| abner_ma 发表于 2024-10-7 11:09 | 显示全部楼层 |阅读模式
   STM32H7S78-DK开发板的主控制器为STM32H7S7L8H6H,其片上存储器资源包括:620 KB SRAM,64 KB Flash。它的片上Flash仅有64 KB,比片上SRAM还要小。对于稍微复杂的项目,64KB根本不够用。但是它有超能力:XIP实现直接执行外部存储器上的代码。
STM32H7R/S系列外部存储器接口和控制器包括:2个SD/SDIO/MMC接口;2个 Octo-SPI 存储器接口,或者1个Octo-SPI + 1个 Hexa-SPI接口,支持XIP;
灵活存储器控制器(FMC),可以支持到32比特位宽,支持SRAM, PSRAM, FRAM, SDR/LPSDR SDRAM, NOR/NAND存储器;
     STM32H7S78-DK开发板上搭载了两个外部存储器,分别是:
256 Mbit Octo-SPI PSRAM   APS256XXN-OBR-BG
1 Gbit Octo-SPI NOR Flash  MX66UW1G45GXDI00

   开发板框架:
1.png

开发板晶振;24M
2.png
chubeMX工程搭建
3.png
4PIN.png

5.png

时钟配置:
CC.png


6.png
9.png
串口配置:
  1. static void MX_UART4_Init(void)
  2. {

  3.   /* USER CODE BEGIN UART4_Init 0 */

  4.   /* USER CODE END UART4_Init 0 */

  5.   /* USER CODE BEGIN UART4_Init 1 */

  6.   /* USER CODE END UART4_Init 1 */
  7.   huart4.Instance = UART4;
  8.   huart4.Init.BaudRate = 115200;
  9.   huart4.Init.WordLength = UART_WORDLENGTH_8B;
  10.   huart4.Init.StopBits = UART_STOPBITS_1;
  11.   huart4.Init.Parity = UART_PARITY_NONE;
  12.   huart4.Init.Mode = UART_MODE_TX_RX;
  13.   huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  14.   huart4.Init.OverSampling = UART_OVERSAMPLING_16;
  15.   huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  16.   huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  17.   huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  18.   if (HAL_UART_Init(&huart4) != HAL_OK)
  19.   {
  20.     Error_Handler();
  21.   }
  22.   if (HAL_UARTEx_SetTxFifoThreshold(&huart4, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
  23.   {
  24.     Error_Handler();
  25.   }
  26.   if (HAL_UARTEx_SetRxFifoThreshold(&huart4, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
  27.   {
  28.     Error_Handler();
  29.   }
  30.   if (HAL_UARTEx_DisableFifoMode(&huart4) != HAL_OK)
  31.   {
  32.     Error_Handler();
  33.   }
  34.   /* USER CODE BEGIN UART4_Init 2 */

  35.   /* USER CODE END UART4_Init 2 */

  36. }



定义一个数组
const char *str = "Hello 21ic, Hello STM32H7S78-DK!\n";
两种方式实现打印:

HAL_UART_Transmit(&huart4, (uint8_t*)str, strlen(str), HAL_MAX_DELAY);
printf("Hello 21ic, Hello STM32H7S78-DK!\n");
HAL_Delay(500);

8.png







 楼主| abner_ma 发表于 2024-10-7 17:02 | 显示全部楼层
重写fputc()函数:
int fputc(int ch,FILE *f)
{
        uint8_t temp[1] = {ch};
       

        HAL_UART_Transmit(&huart4,temp,1,2);
        return ch;
}
星辰大海不退缩 发表于 2024-10-8 22:20 | 显示全部楼层
abner_ma 发表于 2024-10-7 17:02
重写fputc()函数:
int fputc(int ch,FILE *f)
{

串口重映射非常实用
Stahan 发表于 2024-10-13 23:54 | 显示全部楼层
这个重定向函数最方便了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:项目经理
简介:资深嵌入式开发工程师

104

主题

191

帖子

3

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