本文记录STM32mini开发板实验
普通跑马灯

回归GPIO基础知识

每组IO口含有下面7个寄存器,7个寄存器一共可以控制一组GPIO的16个IO口。

GPIOx_CRL:端口配置低寄存器
GPIOx_CRH:端口配置高寄存器
GPIOx_IDR:端口输入寄存器
GPIOx_ODR:端口输出寄存器
GPIOx_BSRR:端口位设置/清除寄存器
GPIOx_BRR:端口位清除寄存器
GPIOx_LCKR:端口配置锁存寄存器

下面实现:使用STM32F10xmini开发板

复位以后跑马灯展示(全亮,全灭,闪两下,从左至右单亮,从右至左单亮,全灭) ;

核心代码

头文件led.h

#ifndef __LED_H
#define __LED_Hvoid LED_Init(void);#endif

实现文件led.c

 #include "led.h"#include "stm32f10x.h"//包含固件库头文件void LED_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIOB的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);//GPIOE的时钟GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设置推挽输出GPIO_InitStructure.GPIO_Pin= GPIO_Pin_8;//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//输出速度GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_8);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设置推挽输出GPIO_InitStructure.GPIO_Pin= GPIO_Pin_2;//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//输出速度GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_SetBits(GPIOD,GPIO_Pin_2);}

主函数main.c

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"int main(void){LED_Init();delay_init();while(1){//全亮GPIO_ResetBits(GPIOA,GPIO_Pin_8);//LED0低电平,点亮GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1低电平,点亮delay_ms(10000);//全灭GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0高电平GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1高电平delay_ms(10000);//亮一下GPIO_ResetBits(GPIOA,GPIO_Pin_8);//LED0低电平,点亮GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1低电平,点亮delay_ms(300);//同时熄灭GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0高电平GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1高电平delay_ms(300);//亮一下GPIO_ResetBits(GPIOA,GPIO_Pin_8);//LED0低电平,点亮GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1低电平,点亮delay_ms(300);//同时熄灭GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0高电平GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1高电平delay_ms(300);//从左往右单亮GPIO_ResetBits(GPIOA,GPIO_Pin_8); //LED0输出低GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高delay_ms(1000);GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1输出低delay_ms(1000);GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1高电平delay_ms(300);//从右往左单亮GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1输出低delay_ms(1000);GPIO_ResetBits(GPIOA,GPIO_Pin_8); //LED0输出低GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高delay_ms(1000);//全灭GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0高电平GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1高电平delay_ms(10000);}
}

上述代码实现:复位以后跑马灯展示(全亮,全灭,闪两下,从左至右单亮,从右至左单亮,全灭) ;使用的是STM32mini板。

stm32跑马灯实验相关推荐

  1. 嵌入式系统stm32 跑马灯实验

    一.实验目的和实验要求 实验要求:短按实验板扩展板上的按键SW18,依次点亮核心板上D2-D4指示灯.长按按键2秒,实现四个灯循环点亮(跑马灯). 二.实验原理 如上图所示,四个 LED 正极通过电阻 ...

  2. STM32跑马灯实验的基本步骤(库函数)

    1.硬件设计 本次用到的硬件只有 LED(DS0 和 DS1).其电路在 ALIENTEK 探索者 STM32F4 开发板 上默认是已经连接好了的.DS0 接 PF9,DS1 接 PF10.所以在硬件 ...

  3. STM32-GPIO学习-跑马灯实验和按键实验-寄存器版本和HAL库版本

    一.stm32跑马灯实验 a.GPIO general purpose input output 通用输入输出端口,可以做输入也可做输出,GPIO端口可通过程序配置成输入或输出. STM32FXXXI ...

  4. 【STM32】跑马灯实验主要程序代码分析

    文章目录 main.c led.c led.h STM32 的 IO 口可以由软件配置成如下 8 种模式: 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 推挽输出 推挽式复用功能 开漏复用功能 S ...

  5. 【stm32】如何把原子哥的代码移植到最小系统板stm32f103c8t6 以跑马灯实验为例

    [stm32]如何把原子哥的代码移植到最小系统板stm32f103c8t6 以跑马灯实验为例 外部硬件: stm32仿真编程器 (仿真编制器自己在网上买,不确定买哪个的可以就买我这个,图片上有牌子,自 ...

  6. 正点原子探索者原理图_正点原子【STM32-F407探索者】第六章 跑马灯实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 http://weixin.qq.com/r/hEhUT ...

  7. 常用库函数_跑马灯实验和我为什么使用库函数?

    建议阅读时长15min,全是干货 希望读者能点赞,关注,分享,让我更有动力,等我彻底写完stm32的学习日志,我会制作成电子书,分享给大家. 我为什么使用库函数进行编写程序? 截至2020年8月28日 ...

  8. 小白学STM32——跑马灯库函数版本

    一.STM32 GPIO 1. GPIO_MODE_AIN 模拟输入 输入信号不经施密特触发器直接接入,输入信号为模拟量而非数字量,其余输入方式输入数字量. 2. GPIO_MODE_IN_FLOAT ...

  9. STM32F103ZET6开发板实现跑马灯实验

    闲的无聊! 想要学好一款芯片,控制芯片io口是必不可少的!实现stm32(正点原子精英版)完成跑马灯(led循环闪烁)实验,就是最基础的控制.我们就必须了解开发板io口模式,那么有几种模式呢? 我把他 ...

最新文章

  1. 物联网是怎样把世界联系起来的
  2. 迈好“转战”第一步-丰收节交易会·陶以平: 谋定乡村振兴
  3. commons-logging log4j的联系区别
  4. HashMap 和 HashTable 到底哪不同 ?
  5. 背水一战:苹果向三星采购5G基带芯片遭拒 或自行研发
  6. 远程ykvm 插件移值java_远程管理KVM,命令行控制KVM,console连接,透传
  7. 多线程并发思考--文件加锁
  8. MySQL导入与导出备份详解
  9. 现场知识竞赛如何用手机做抢答器
  10. 怎么把几个音频合并在一起?
  11. 8K HDR!|为 Chromium 实现 HEVC 硬解 - 原理/实测指南
  12. IDEA全局替换快捷键
  13. TestCenter测试管理工具介绍和环境配置(A)
  14. VCC和GND短路,怎么找问题?
  15. android按键静音键功能实现
  16. 【零基础学Python】爬虫篇 :第十四节--爬虫+词云解决实际问题
  17. 《电信3.0——第二章》
  18. 为什么数学是创造力的源泉:一位数学家的思考与信仰
  19. 人工智能(AI)入门
  20. Matlab:Voronoi 图

热门文章

  1. ExpressionFuncT,TResult和FuncT,TResult
  2. leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)
  3. linux export_symbol 变量,linux EXPORT_SYMBOL
  4. java课程设计总结迷宫_Java课程设计走迷宫详解.doc
  5. mysql query plan_MySQL Execution Plan--IN查询计划(2)
  6. python了解一下_想要精通python?19个语法了解一下!
  7. 【Paper】2018_Group Consensus for Discrete-Time Heterogeneous Multiagent Systems with Input and Commun
  8. Python 实现图片质量比较之PSNR和SSIM
  9. 2.10 词嵌入除偏-深度学习第五课《序列模型》-Stanford吴恩达教授
  10. keil 多文件组织方法