自学内容网 自学内容网

STMCubeMX配置STM32F103ZET6

1 配置时钟

配置RCC。
在这里插入图片描述

配置 SYS。将Timebase Source配置为TIM1, SysTick留给FreeRTOS用。
在这里插入图片描述
注意: 由于第一次配置的时候忘记配置这个步骤,导致工程第一次烧录成功后,后面一直无法烧录,报以下错误:
keil no target connect
Error: Flash Download failed - Target DLL has been cancelled

解决方案:BOOT0拉高, BOOT1拉低,重新上电烧录,烧录成功后断电,再把BOOT0拉低,之后就可以重新烧录了。

配置系统时钟。
在这里插入图片描述

2 配置GPIO

配置控制 LED 的GPIO.
LED_R – PB0: GPIO_Output
LED_G – PB1: GPIO_Output
LED_B – PB5: GPIO_Output
在这里插入图片描述
鼠标左键点击对应的引脚,选择 GPIO_Output.

在这里插入图片描述
所有GPIO输出默认电平为高,推挽输出,带上拉,低速。因为LED另一端连接3.3V电源,所以配置为高电平,默认不点亮LED。

流水灯代码:

  uint16_t time = 100;
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_SET);
  HAL_Delay(time);
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_SET);
  HAL_Delay(time);
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_G_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, LED_B_Pin, GPIO_PIN_RESET);
  HAL_Delay(time);

3 配置按键

3.1 轮询方式

Key1 – PA0
Key2 – PG15
Key3 – PC13
Key4 – PE3
在这里插入图片描述

int keyPoll(void)
{
   
  if (HAL_GPIO_ReadPin(KEY1_UP_GPIO_Port, KEY1_UP_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5); //延时 5ms, 按键消抖 
    if(HAL_GPIO_ReadPin(KEY1_UP_GPIO_Port, KEY1_UP_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_UP is pressed\r\n"); 
    } 
  }

  if (HAL_GPIO_ReadPin(KEY2_DOWN_GPIO_Port, KEY2_DOWN_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(HAL_GPIO_ReadPin(KEY2_DOWN_GPIO_Port, KEY2_DOWN_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_DOWN is pressed\r\n"); 
    }
  }

  if (HAL_GPIO_ReadPin(KEY3_LEFT_GPIO_Port, KEY3_LEFT_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(HAL_GPIO_ReadPin(KEY3_LEFT_GPIO_Port, KEY3_LEFT_Pin) == GPIO_PIN_RESET) {
   
      printf("KEY1_LEFT is pressed\r\n"); 
    }
  }

  if (HAL_GPIO_ReadPin(KEY4_RIGHT_GPIO_Port, KEY4_RIGHT_Pin) == GPIO_PIN_RESET) {
   
    HAL_Delay(5);
    if(

原文地址:https://blog.csdn.net/qq_42851449/article/details/144122647

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!