又要继续奋斗啦,不然就交白卷了;

1---自己注意,就是那个板子上有8个led灯,这个灯呢,没哟甩端口直接控制模式用573锁存器来控制的,为的是啥呢,因为你的芯片就那么几个引脚  ,你就单单把引脚拿来控制什么led灯啊,什么蜂鸣器啊,这些小东西,非那么多资源,太得不偿失了,于是  就出现了这个锁存器,干啥呢:就是为了节省端口  ,你看假如你的led灯的控制脚连在A0~~A7,那么这8个端口给灯用了,那么干别的就不能用这个端口了,于是这个锁存器就可以在你想用这几个端口干别的时,把锁存器关上,这样灯不就跟那几个端口给的状态没关系了嘛。(说白了,就是为了省端口,节约是好事嘛)

2----

还记得那个关于GPIO的总结吗,至于管这个GPIO叫啥,我也不清楚,因为我没查,我就把它理解成一个大门,你要是想用芯片的端口,就得把这个大门开开,把锁头放到规定的位置,然后进去后,把他们关好。反正一切都得按照这个GPIO大门的规定来办事。

3------

回顾一下  那个GPIO的操作步骤:

1)先把你用的那个大端口(就是PA啦,PB啦,PC啦~~~)的外部时钟开开,(为啥开这个时钟,就是因为那个stm32是非常省电的,所以  你用那一个端口,就得开哪一个,不然,怎么省电啊)

   2)对应那个大的端口下的小端口初始化(就是PA0  PA1 等等)

   3)设置它的模式

   4)设置它的最大速度

   5)最后再加一个那个GPIO_Init(GPIOx,&GPIO_InitStructure)

4---好了,回到正题,那就是代码啦

 #include "stm32f10x.h"//头文件
#include "led.h" void LED_Control(uint16_t LED, uint8_t LED_Status)//对灯的控制函数
void LED_Init(void);//对灯的初始化,就是引脚初始化,时钟初始化 int main()
{
unsigned int i;
char j = ;
LED_Init();
LED_Control(LEDALL, );//先叫所有的灯关了
while ()
{
LED_Control( << j, );//灯的引脚是C8~~~C15,亮
for (i = 0x3fffff; i > ; i--)//延时
LED_Control( << j, );//灭
for (i = 0x3fffff; i > ; i--)
j = (++j == ) ? : j;//这一句不错
}
} void LED_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;//(1)定义那个结构体
/*********************************
用到了CD两个大的端口,所以弄这俩的时钟
************************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //LED引脚配置, PC08~PC15 对应 H_D0~H_D7
GPIO_InitStructure.GPIO_Pin = LED0 | LED1 |LED2 | LED3 |LED4 | LED5 | LED6 | LED7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//小引脚的模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;//小引脚的最大速度
GPIO_Init(GPIOC, &GPIO_InitStructure);//不能丢的那个累赘 //74HC573锁存引脚配置,PD2 对应 N_LE
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//因为你的灯使用573锁存器控制的,那么得把那个锁存器的使能开开
GPIO_Init(GPIOD, &GPIO_InitStructure);
} void LED_Control(uint16_t LED, uint8_t LED_Status)
{
if (LED_Status == )
{
GPIO_SetBits(GPIOC, LED);//开灯
GPIO_SetBits(GPIOD, GPIO_Pin_2); //开锁存器
GPIO_ResetBits(GPIOD, GPIO_Pin_2); //关, 锁存状态
}
else
{
GPIO_ResetBits(GPIOC, LED);//关灯
GPIO_SetBits(GPIOD, GPIO_Pin_2);//开锁存器
GPIO_ResetBits(GPIOD, GPIO_Pin_2);//关锁存器
}
}

        

第二个--关于led灯的代码总结的更多相关文章

  1. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

  2. 第7章 使用寄存器点亮LED灯

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  3. 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  4. S3C2410——LED灯实验

    一.S3C2410输入/输出的原理 Linux主要有字符设备.块设备和网络设备3类驱动程序,我们一般编写的驱动都是字符设备驱动程序. 二.程序部分 编写程序控制3个LED灯,代码分为2个部分:控制LE ...

  5. 第二章之S5PV210在BL1中点亮LED灯

    1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_in ...

  6. 树莓派点亮LED灯需要几行代码?3行。小孩子都能学会

    目录 点亮LED灯 硬件连接 代码 闪烁的LED灯 呼吸灯 其他 点亮LED灯 硬件连接 找一个LED灯,连接如上图,注意长短引脚,经过这些年的狂轰乱炸,大家对于这个应该不漠视,毕竟Arduino都进 ...

  7. nodejs和树莓派开发以及点亮RGB的LED灯代码

    前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ss ...

  8. 我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯

    关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Qu ...

  9. 嵌入式linux——点亮led灯(二)

    刚才在jz2440板子上写了一个点亮中间led的程序,前前后后十几分钟才好.最终代码 本节内容: 1. 汇编点灯 2. C点灯 3. 参数选择点灯 4. 按键点灯 1. 汇编点灯 .text .glo ...

随机推荐

  1. 11 —— 回顾 JSON 相互转换的知识点

    /** * json 转换的两种方式 * * 一,转为字符串 (序列化的过程) * JSON.stringify() * * 二,json 转化为字符串 (反序列化的过程) * JSON.parse( ...

  2. GCPC 2013_A Boggle DFS+字典树 CSU 1457

    上周比赛的题目,由于那个B题被神编译器的优化功能给卡了,就没动过这个题,其实就是个字典树嘛.当然,由于要在Boggle矩阵里得到初始序列,我还一度有点虚,不知道是用BFS还是DFS,最后发现DFS要好 ...

  3. Tensorflow学习教程------非线性回归

    自己搭建神经网络求解非线性回归系数 代码 #coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pypl ...

  4. Firefly-RK3399 上编译安装 OpenCV 3

    原文转自:http://dev.t-firefly.com/thread-12143-1-1.html OS:官方固件 Xubuntu 16.04 1) Install 1.1) Required P ...

  5. 关于mysql/apache/nginx的配置文件配置

    2015.5.12 mysql中可以通过函数查看用户列表/查看当前用户以及删除用户,方法百度之,忘了 /etc/php5/fpm/php.ini memory_limit修改之前为128M apach ...

  6. Cracking Digital VLSI Verification Interview 第二章

    Computer Architecture 对Cracking Digital VLSI Verification Interview:Interview Success这本书的汉化,最新更新请关注微 ...

  7. Spring Cloud Alibaba 教程 | 前世今生

    Spring Cloud Alibaba是什么 先来看一下官方是怎么定义Spring Cloud Alibaba的: Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此 ...

  8. UVALive 3942 字典树+dp

    其实主要是想学一下字典树的写法,但这个题目又涉及到了DP:这个题目要求某些单词组成一个长子串的各种组合总数,数据量大,单纯枚举复杂度高,首先肯定是要把各个单词给建成字典树,但是之后该怎么推一时没想到. ...

  9. 寒假day17-本周计划

    完善人才的数据挖掘模块 结合当下疫情完成人才动态模块 修正人才标签部分 优化界面

  10. jupyter notebook 安装配置使用,+目录插件安装

    1.安装 pip3 install jupyter 2.配置 2.1. 生成一个 notebook 配置文件 jupyter notebook --generate-config /root/.jup ...