实训4---硬件部分---点灯实验--按键控制灯实验--uart串口实验

2023-12-26 21:39:06

目录

三、硬件部分

【1】点灯实验

【2】按键控制灯实验

【3】uart串口实验

核心代码:

实验视频

实现流水灯

uart串口实验


三、硬件部分

GPIO

【1】点灯实验

1.首先找到要点的灯,在板子上看到对应的白色丝印,比如绿灯D10.然后打开底板原理图找到LED灯

点亮绿灯只需要将网络标号LED4设置为低电平即可导通,绿灯亮。

CON1的5引脚

2.然后去核心板原理图去找对应的网络标号LED4,看到对应的引脚为PB0,即将PB0设置为低电平即可点亮

  1. 配置STM32CubeMX

1)打开STM32CubeMX

  1. 双击第二个Ux

然后:

然后:

然后:

然后:

打开keil

1)打开创建文件的路径下MDK-ARM里面的工程文件

2)打开main.c

  1. 编写代码,注意写在BEGIN和END之间

4)编译(F7)烧写(F8),烧写插入STLink,打开stm32电源

  1. 按复位键

效果:


任务:

????????实现流水灯:

????????黄灯亮一秒

????????蓝灯亮一秒

????????绿灯亮一秒

【2】按键控制灯实验

  1. 找到按键的位置PA8
  2. 配置STM32CubeMX,PA8,输入,PB0输出
  3. 生成KEIL工程
  4. 写代码

读PA8引脚状态,如果按下反转灯

HAL_Delay(100);//延时消抖

int??ret??=?HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8);

if(ret?==?1)

{

HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);//反转PB0

}

【3】uart串口实验

配置PA9,PA10分别为发送端和接收端

CubeMX

File->new?project?输入stm32f051k8,选择ux

打开生成后的工程文件中的main.c

打开串口调试工具:

核心代码:

uint8_t buttonState=0;   //记录按键时灯的状态
  
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		//HAL_Delay(1000);
	  
	 //按下就亮,放开就灭
	/*
	   
	  if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)){
		  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
		  
	  }else{
		  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);

	  }
	 */
	 

  //按下就亮,再按就灭
/*
    if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {
        HAL_Delay(50); // 增加延时以避免抖动
        if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET) {
            if(buttonState == 0) {
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
                buttonState = 1;
            } else {
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
                buttonState = 0;
            }
            while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_8) == GPIO_PIN_SET); // 等待按键释放
        }
    }
*/
	 
	 
	 
	 

  
  char buf[32]={0};
  HAL_UART_Receive(&huart1,buf,sizeof(buf),100);
  
  HAL_Delay(1000);
  //串口1
   HAL_UART_Transmit(&huart1,buf,sizeof(buf),1000);
   HAL_Delay(2000);
  
  }
  /* USER CODE END 3 */
}

实验视频

实现流水灯

流水灯

uart串口实验

uart串口实验

文章来源:https://blog.csdn.net/m0_63064861/article/details/135230769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。