STM32利用CubeMX完成8个led流水灯的编程模拟

收线是利用Proteus8.15  绘制仿真的电路图

接着设置CubeMX中的用到的端口

难后生成keil工程文件,添加一部分代码,完成流水灯的操作

把代码也展示一下吧!需要写的只有在main函数中的while循环中。

 while (1)
  {
      /****************************************************************
      // 下面是电平翻转函数,  端口是0的话变成1,  是1的话变成0
      //HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
      HAL_GPIO_TogglePin(led1_GPIO_Port, led1_Pin);  // 电平翻转函数
      //HAL_Delay(uint32_t Delay)
      HAL_Delay(200);           // 延时函数(200毫秒)
      ******************************************************************/
      
      //下面是电平置位函数   可以设置成0或1
      //HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_RESET);   // led1 置0
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
      
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_RESET);   // led2 置0
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_RESET);   // led3 置0
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_RESET);   // led4 置0
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_RESET);   // led5 置0
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_RESET);   // led6 置0
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_RESET);   // led7 置0
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_SET);   // led8 置1
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET);   // led1 置1
       HAL_GPIO_WritePin(led2_GPIO_Port,led2_Pin, GPIO_PIN_SET);   // led2 置1
       HAL_GPIO_WritePin(led3_GPIO_Port,led3_Pin, GPIO_PIN_SET);   // led3 置1
       HAL_GPIO_WritePin(led4_GPIO_Port,led4_Pin, GPIO_PIN_SET);   // led4 置1
       HAL_GPIO_WritePin(led5_GPIO_Port,led5_Pin, GPIO_PIN_SET);   // led5 置1
       HAL_GPIO_WritePin(led6_GPIO_Port,led6_Pin, GPIO_PIN_SET);   // led6 置1
       HAL_GPIO_WritePin(led7_GPIO_Port,led7_Pin, GPIO_PIN_SET);   // led7 置1
       HAL_GPIO_WritePin(led8_GPIO_Port,led8_Pin, GPIO_PIN_RESET);   // led8 置0
       HAL_Delay(100);           // 延时函数(200毫秒)
       
       
      
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

下面是使用的函数的来源:

这是延时函数的来源:

下面是GPIO中置位函数的来源:

按照上面的样子编译后导入proteus中就能模拟流水灯效果了。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 15:48:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 15:48:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 15:48:02       87 阅读
  4. Python语言-面向对象

    2024-02-22 15:48:02       96 阅读

热门阅读

  1. 数据库三范式

    2024-02-22 15:48:02       55 阅读
  2. 项目总结(ALL)

    2024-02-22 15:48:02       63 阅读
  3. Rust 安装

    2024-02-22 15:48:02       53 阅读
  4. IP分片重组功能的模拟实现

    2024-02-22 15:48:02       48 阅读
  5. 题目 1032: [编程入门]自定义函数之字符串连接

    2024-02-22 15:48:02       46 阅读
  6. 力扣96不同的二叉搜索树详解

    2024-02-22 15:48:02       40 阅读
  7. hsv Matlab

    2024-02-22 15:48:02       53 阅读
  8. 向量数据库Milvus字符串查询

    2024-02-22 15:48:02       50 阅读
  9. JVM调优

    JVM调优

    2024-02-22 15:48:02      34 阅读
  10. el-select加上搜索查询时,限制开头空格输入

    2024-02-22 15:48:02       54 阅读
  11. 微众银行:始于数字原生,立于普惠金融

    2024-02-22 15:48:02       53 阅读
  12. 主流无人机开源飞控

    2024-02-22 15:48:02       54 阅读