2021-07-08 使用RT-Thread Studio程序调试过程中的要点记录(芯片使用STM32F407ZE)

1、系统的时钟树通过STM32 CUBE MX软件配置,然后通过替换RT-Thread Studio工程中rt_clk.c文件中的system_clock_config()函数设置系统时钟树。主板使用外部时钟和内部时钟,可以通过这个操作设置。官方例程一般默认使用内部时钟。下面是25M外部时钟的配置:
void system_clock_config(int target_freq_mhz)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  /** Initializes the CPU, AHB and APB busses clocks
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB busses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }

}

2、通过RT-Thread Studio程序配置CAN通讯功能,RT-Thread Studio生成的工程中不会自动添加CAN的驱动代码需要自己到这个网站下载,手动添加(https://github.com/RT-Thread/rt-thread/),如下图所示:
2021-07-08 使用RT-Thread Studio程序调试过程中的要点记录(芯片使用STM32F407ZE)

上一篇:【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)


下一篇:Linux开发STM32H7系列教程之二《手动配置H743XIH6工程》