| 第一次玩H5系列的芯片,心情无比激动
 还是利用STM32CubeIDE,首先创建STM32 Project,如图,直接选择NUCLEO-H533RE
 
 
 勾选Generate demonstration code,其他默认,OK。
 
 弹出的警告,暂时先不理会,提醒要打开ICACHE的。
 
 生成代码后,直接编译运行,工程就是这么简单,根本不需要写代码。DEMO里的是按键翻转LED的功能。看视频效果:
 
 为后续的运行速度的测评做准备,先打开定时器2(32位定时器),设置一个1us的自增计数值(Demo里默认主频是32Mhz)
 
 
 修改main.c中的代码
 /* Private variables ---------------------------------------------------------*/
COM_InitTypeDef BspCOMInit;
__IO uint32_t BspButtonState = BUTTON_RELEASED;
TIM_HandleTypeDef htim2;
/* USER CODE BEGIN PV */
uint32_t TimeStamp = 0;
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_TIM2_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */
char DispStr[64];
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* USER CODE BEGIN Init */
  /* USER CODE END Init */
  /* Configure the system clock */
  SystemClock_Config();
  /* USER CODE BEGIN SysInit */
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
  /* USER CODE END 2 */
  /* Initialize leds */
  BSP_LED_Init(LED_GREEN);
  /* Initialize USER push-button, will be used to trigger an interrupt each time it's pressed.*/
  BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
  /* Initialize COM1 port (115200, 8 bits (7-bit data + 1 stop bit), no parity */
  BspCOMInit.BaudRate   = 115200;
  BspCOMInit.WordLength = COM_WORDLENGTH_8B;
  BspCOMInit.StopBits   = COM_STOPBITS_1;
  BspCOMInit.Parity     = COM_PARITY_NONE;
  BspCOMInit.HwFlowCtl  = COM_HWCONTROL_NONE;
  if (BSP_COM_Init(COM1, &BspCOMInit) != BSP_ERROR_NONE)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN BSP */
  /* -- Sample board code to send message over COM1 port ---- */
  printf("Welcome to STM32 world !\n\r");
  /* -- Sample board code to switch on leds ---- */
  BSP_LED_On(LED_GREEN);
  HAL_TIM_Base_Start(&htim2);
  /* USER CODE END BSP */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* -- Sample board code for User push-button in interrupt mode ---- */
    if (BspButtonState == BUTTON_PRESSED)
    {
      /* Update button state */
      BspButtonState = BUTTON_RELEASED;
      /* -- Sample board code to toggle leds ---- */
      BSP_LED_Toggle(LED_GREEN);
      /* ..... Perform your action ..... */
      TimeStamp = __HAL_TIM_GET_COUNTER(&htim2);
      sprintf(DispStr, "The current timestamp is: %d \n\r", TimeStamp);
      printf(DispStr);
    }
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
 每按一次按键,将当前的时间戳显示出来,单位us。
 
 |