小编在野火上学习完用固件库点亮一个LED灯后,自己编程做了一个LED流水灯。在这里分享给大家。

用proteus8.7做的仿真图:

固件库编程的方式,源码如下:

bps_LED_LS.h //用于声明全局变量,定义宏,声明全局变量

#ifndef _BSP_LED_H
#define _BSP_LED_H#include "stm32f10x.h"
extern uint16_t LED_G_GPIO_PIN; //声明全局变量,定义引脚,
extern GPIO_InitTypeDef  GPIO_InitStruct;  //声明全局变量,寄存器B的结构体#define LED_G_GPIO_PORT  GPIOB    //宏定义端口,便于移植
#define LED_G_GPIO_CLK  RCC_APB2Periph_GPIOB  //宏定义时钟使能//函数声明void LED_GPIO_Config(void);#endif /*_BSP_LED_H*/

bps_LED_LS.c //点亮一个LED灯的封装驱动函数文件

#include "bsp_LED_LS.h"void LED_GPIO_Config(void){  //初始化GPIO(一个完整的初始化函数)
RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE); //开时钟,来自“stm32f10x_rcc.h”GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;  //选择引脚(LED_G_GPIO_PIN为引脚变量)GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //选择推挽输出“GPIO_Mode_Out_PP”来自stm32f10x_gpio.h的模式的枚举GPIO_InitStruct.GPIO_Speed =GPIO_Speed_50MHz; //选择推挽输出“GPIO_Speed_50MHz”来自stm32f10x_gpio.h的速率的枚举GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct); //&是取地址的意思,因为GPIO_InitStruct是一个结构体的变量
}

main.c //主函数文件

#include "stm32f10x.h"
#include "bsp_LED_LS.h"GPIO_InitTypeDef  GPIO_InitStruct;  //全局变量,寄存器B的结构体
uint16_t LED_G_GPIO_PIN=0x0001;       //全局变量,定义引脚,设定一个引脚初值void Delay(uint32_t count){   //延时函数for(;count!=0;count--);
}int main(void){while(1){LED_GPIO_Config();  //调用GPIO初始化函数,完成时钟的设置、引脚的选择、端口的输入输出模式和速率等的配置GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);  //GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin),一会儿灯又亮了(清零函数)  Delay(0xFFFFF);GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);  //GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin),一会儿灯灭掉了(置位函数)Delay(0xFFFFF);LED_G_GPIO_PIN =LED_G_GPIO_PIN<<1;if(LED_G_GPIO_PIN==0x0008){   //循环,将灯点亮的范围控制在PB0-PB2
LED_G_GPIO_PIN = 0x0001;
}}
}

仿真结果图:

三个LED依次循环点亮。

注意建立工程时选取的芯片与仿真时的芯片一致,proteus8.7中stm32的芯片类型很少,所以建立工程时需要注意。

简单的学习分享,希望对大家有所帮助!!!

STM32——用固件库实现流水灯(源码+仿真图)相关推荐

  1. 51单片机循环流水灯源码

    51单片机循环流水灯源码 #include <reg52.h> #include <intrins.h> void delay(unsigned char a) {unsign ...

  2. STM32(HAL库)流水灯配置及代码

    目录 一.Cube_MX配置及其原理: 二.代码详情(可自行跳转到此处) 一.Cube_MX配置及其原理: 1.选择合适的芯片,左侧输入芯片型号,右侧选择LQFP144双击打开芯片配置  2.点亮流水 ...

  3. 基于Keil、STM32,用C++编写流水灯程序

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少,那么究竟能不能用C++开发 ...

  4. STM32 串口固件库中定义的几个中断标志什么意思?

    STM32 串口固件库中定义的几个中断标志位什么意思? #define USART_IT_PE                       ((uint16_t)0x0028) #define USA ...

  5. #STM32标准固件库的硬件SPI(NSS为软件)封装函数库

    #基于STM32标准固件库的硬件SPI(NSS为软件)封装函数库: 最近来回顾之前写过的SPI_Flash,打算重写一次SPI配置文件 spi协议最大的特点大概就是全双工了,因此stm32硬件spi的 ...

  6. 基于51单片机的花样流水灯设计(源码+仿真+设计报告)

    资料编号:113 采用51单片机的IO控制多个LED灯,实现多种模式的流水风,全套资料齐全:具体功能请看下方演示视频 113-基于51单片机的花样流水灯设计(源码+仿真+设计报告) 单片机最小系统介绍 ...

  7. 基于stm32单片机的台历日历计时器万年历Proteus仿真(源码+仿真+全套资料)

    资料编号:151 视频讲解: 151-基于stm32单片机的台历日历计时器万年历Proteus仿真(源码+仿真+全套资料) 采用stm32单片机作为主控,LCD屏幕上部分显示电子日历,下半屏幕显示台历 ...

  8. 基于stm32的秒表计时器设计系统Proteus仿真(源码+仿真+全套资料)

    资料编号:126 功能讲解: 采用stm32单片机作为控制器,数码管来显示秒表时间,三个按键作为开始 清零 暂停来控制秒表的计时,秒表可以显示小数点后面一位,最大可以显示999.9s,全套资料齐全:具 ...

  9. 基于stm32单片机一氧化碳可燃气体检测仿真(源码+仿真+参考论文)

    资料编号:054 采用stm32单片机作为控制芯片,通过STM32的ADC检测当前的气体浓度,LCD1602显示,并且可以自动控制风扇排气,也可以设置为手动排气.仿真采用Proteus8.9版本,程序 ...

  10. 基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文)

    资料编号:146 视频讲解: 146-基于stm32单片机农业智能温室大棚温湿度光照测量报警系统Proteus仿真(源码+仿真+论文) 设计内容 本次嵌入式课程设计综合实验的内容为基于proteus的 ...

最新文章

  1. c语言五子棋开题报告,基于VC的五子棋游戏的设计与实现(附答辩记录)
  2. Mysql之增加数据_INSERT INTO
  3. 从网页(WEB)登录SAP
  4. 开发中我们谈的产品化是什么?阿里是怎么看待产品化?
  5. create_workqueue和create_singlethread_workqueue【转】
  6. 字符级中文文本分类-CNN基于TensorFlow实现
  7. 牛逼!在IDEA里搞Spring Boot Mybatis反向工程,太爽咯~
  8. DataTable转为JSON数据格式代码
  9. LaTeX 切换其它另外的期刊会议模板
  10. Unity3d资源管理模块
  11. sprintf函数的用法linux,Linux 常用函数——sprintf函数
  12. Linux傲腾内存,Intel傲腾内存全面对比实测
  13. moment.js时间格式转换
  14. c# 多功能矢量绘图程序
  15. Violent python - UNIX Password CrackerZipfile Password Cracker
  16. 8K视频处理和工作原理,8K视频处理分析
  17. 你既言而无信,我即出尔反尔
  18. 店铺差评有什么影响原因有哪些方面,怎么避免差评,被差评了怎么解决
  19. 决策树留一法python代码_从实例中归纳决策树_人工智能一
  20. [Java] 遍历指定包名下所有的类(支持jar)

热门文章

  1. bzoj 4987: Tree 树形dp
  2. java thread 简单写法_Java线程池写法改写为C#线程池写法
  3. 林轩田机器学习基石5笔记:训练和测试的不同
  4. Real-Time Rendering——Chapter 10Local Illumination局部照明
  5. ARM 代码烧录方案与原理详解 --- SWD/JTAG + Bootloader + OTA (ICP + ISP + IAP)
  6. 【DZX修改】根据性别不同显示不同的默认头像
  7. Softmax和关于它的交叉熵损失函数详细求导过程
  8. 【GIS教程】ArcGIS做日照分析(附练习数据下载)
  9. 初学者:html中的表单详解(下面附有代码)
  10. spring cloud gateway filters学习