学习目标:

掌握STM32野火mini控制led灯达到流水灯的目的


学习内容:

1.资源整合(包括μcos)

2.代码解读


学习时间:

周一上午8点—9点


学习产出:

1.资料查找及整合(包括μcos)
2.关于野火mini led的学习

一、资料整合
1.野火官网:https://www.firebbs.cn/forum.php
推荐官方软件:野火大学堂 云盘连接:https://pan.baidu.com/s/1anWUxJgTawtERMoD_8SSNw 提取码:vlh6(百度云下载)微信登陆即可,在安装选择资源获取地址的时候选择gitee效率高。

选择相关的学习资料下载即可,主要包括硬件资料(寄存器地址以及相关功能)
2.bilibili视频:https://www.bilibili.com/video/BV1rt411u7bv?from=search&seid=12868693686422743202

3.csdn关于ucos的博客:

二、代码解读

1.电路图查找:

(F103-MINI+原理图.pdf)电路图确定io口

led.h

#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
/*相关GPIO口设置*/
#define LED1_GPIO_PORT      GPIOC                       /* GPIO端口 */
#define LED1_GPIO_CLK       RCC_APB2Periph_GPIOC        /* GPIO端口时钟*/
#define LED1_GPIO_PIN       GPIO_Pin_2                  /*小灯D4的端口*/#define LED2_GPIO_PORT       GPIOC                       /* GPIO端口 */
#define LED2_GPIO_CLK       RCC_APB2Periph_GPIOC        /* GPIO端口时钟*/
#define LED2_GPIO_PIN       GPIO_Pin_3                  /*小灯D5的端口*/#define ON  0
#define OFF 1/*直接操作寄存器*/
#define digitalHi(p,i)       {p->BSRR=i;}    //既能控制管脚为高电平,也能控制管脚为低电平。寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。简记为高低低高写 0 ,无动作#define digitalLo(p,i)         {p->BRR=i;}     //BRR只写寄存器,只能控制io口为低电平,1为低电平,0无动作
#define digitalToggle(p,i) {p->ODR ^=i;} //ODR寄存器可读可写,高低电平均可控制,但是会因为中断而打断,1高0低/*宏定义IO口*/
#define LED1_TOGGLE      digitalToggle(LED1_GPIO_PORT,LED1_GPIO_PIN)
#define LED1_OFF           digitalHi(LED1_GPIO_PORT,LED1_GPIO_PIN)
#define LED1_ON            digitalLo(LED1_GPIO_PORT,LED1_GPIO_PIN)#define LED2_TOGGLE        digitalToggle(LED2_GPIO_PORT,LED2_GPIO_PIN)
#define LED2_OFF           digitalHi(LED2_GPIO_PORT,LED2_GPIO_PIN)
#define LED2_ON            digitalLo(LED2_GPIO_PORT,LED2_GPIO_PIN)/*固件库控制*/
#define LED1(a) if (a)  \GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\else       \GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)#define LED2(a)    if (a)  \GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);\else       \GPIO_ResetBits(LED2_GPIO_PORT,LED2_GPIO_PIN)void LED_GPIO_Config(void); //定义led的GPIO的初始化#endif

led.c

#include "bsp_led.h"   void LED_GPIO_Config(void)
{       /*GPIO_InitTypeDef类型结构体*/GPIO_InitTypeDef GPIO_InitStructure;/*开启led1和led2的外设时钟*/RCC_APB2PeriphClockCmd( LED1_GPIO_CLK | LED2_GPIO_CLK , ENABLE);/*选择GPIO的引脚*/GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN; /*推挽输出*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   /*端口速率设置50MHz */   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*库函数调用,init GPIO*/GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure); /*选择要控制的GPIO引脚*/GPIO_InitStructure.GPIO_Pin = LED2_GPIO_PIN;/*库函数调用,init GPIO*/GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);      /*关灯*/GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);GPIO_SetBits(LED2_GPIO_PORT, LED2_GPIO_PIN);
}

main.c

#include "stm32f10x.h"
#include "bsp_led.h"#define SOFT_DELAY Delay(0x0FFFFF);void Delay(__IO u32 nCount); int main(void)
{   /*LED端口初始化*/LED_GPIO_Config();   while (1){LED1_ON;        // 亮SOFT_DELAY;LED1_OFF;        //灭LED2_ON;         //亮SOFT_DELAY;LED2_OFF;         //灭}
}
void Delay(__IO uint32_t nCount)     //简单的软件延时
{for(; nCount != 0; nCount--);
}

2.采用固件库控制

led.h

#define a 1

main.c

/*在while循环中*/
LED1(a);
SOFT_DELAY;
LED1(!a);
SOFT_DELAY;
LED2(a);
SOFT_DELAY;
LED2(!a);

led.h

#define a 1

main.c

/*在while循环中*/
LED1(a);
SOFT_DELAY;
LED1(!a);
SOFT_DELAY;
LED2(a);
SOFT_DELAY;
LED2(!a);

3.总结:
led.h文件宏定义IO口信息(GPIO_PORT口、GPIO_CLK时钟口、GPIO_PIN引脚)声明端口配置函数 void LED_GPIO_Config(void);
led.c文件GPIO_InitTypeDef GPIO_InitStructure;定义GPIO_InitTypeDef 结构体,便于设置输出模式以及端口速率,配合.h文件中的宏定义指定引脚配合GPIO_InitTypeDef结构体初始化所要控制的GPIO口,打开端口时钟(这一步就是32与51这些单片机不一样的地方,他可以很好的控制功耗,时钟就相当于开关,指定的打开,可以降低功耗)最后设置GPIO口的电平来控制灯的亮灭
main.c中间可以定义简单的软件延时搭配led.h中的宏定义或者直接通过GPIO_SetBits(GPIO_PORT,GPIO_PIN)和GPIO_ResetBits(GPIO_PORT,GPIO_PIN)控制电平变化来达到流水灯的效果。

关于野火mini led的学习相关推荐

  1. asp用于取代什么技术_苹果Mini LED晶粒四季度量产,用于新iPad Pro,三安光电或成赢家...

    来源 :快科技 9月23日消息,天风证券知名分析师郭明錤发布最新报告.由于OLED屏主要集中在韩国供应商体系下,这也加快了苹果要打破这种局面的节奏,很快他们就要推出使用Mini LED屏的移动设备了. ...

  2. 海信E8H Mini LED 电视评测

    海信E8H采用了超过500个分区的MiniLED显示技术,将具备3000颗以上的MiniLED灯珠,在MiniLED灯珠的加持下,产品的峰值亮度可以达到1600nit,从而实现对于HDR片源的更好还原 ...

  3. 500+分区Mini LED,海信电视E8H让画质更纯净

    10年前,海信以分区背光为名,开启了一场显示技术变革,十年后,海信技术的全新升级仍然聚焦在体现电视根本价值的画质方面.Mini LED 新品E8H 以创新的黑科技.颠覆性的画质,再次诠释海信在高端影像 ...

  4. 苹果展开新显示器带动高阶需求:Mini LED背光技术

    TrendForce LED 研究(LEDinside)指出,苹果甫发表一款采用全新 LED 背光方案的 Pro Display XDR 32 吋 6K 显示器,带动显示器产业积极找寻高阶产品的新技术 ...

  5. ios研发Mini LED技术 iPad/MacBook尺寸将更大

    著名苹果分析师郭明錤(Ming-Chi Kuo)的研究称,苹果在未来几年可能推出几款新产品,而这几款新产品使用的是一种新显示技术,能够更好地显示颜色和对比度. 下一代"mini LED&qu ...

  6. 苹果屏幕尺寸_搭载 mini LED 屏幕的 iPad Pro 要来了?!

    点击上方蓝色字体,关注我们 去年,分析师郭明錤曾预测苹果最快将在 2020 年末推出搭载 Mini LED 屏幕的产品,首款产品可能是 iPad Pro 或者 MacBook.郭明錤称 Mini LE ...

  7. Mini LED,显示技术的春天?!

    Mini LED,显示技术的春天?! 近几年Mini LED和Micro LED似乎成为显示技术的新宠.各种各样的线上线下研讨会层出不穷.行业各大巨头斥巨资进入,一片欣欣向荣的景象.本文尝试对几种主流 ...

  8. 车载Mini LED持续升温,各家厂商进展如何?

    去年,Mini  LED背光技术在车载显示赛道上初露头角,多款搭载 Mini LED 屏幕的汽车陆续发布.随着新能源车渗透率的提高,车载显示成为明确增长的赛道,为Mini LED背光进入车载带来利好. ...

  9. 阿迪达斯发布公司新战略;联合利华美容个护产品将弃用“正常”一词;TCL电子发布高端Mini LED智屏 | 美通企业日报...

    今日看点:阿迪达斯公布新的公司战略"掌控全场",聚焦三大重点领域.联合利华旗下所有美容个护品牌在包装以及广告中将弃用"Normal"相关表达.意大利高端牛仔品牌 ...

  10. TCL X11G参数 TCL X11G Mini LED 评测怎么样

    TCL X11G 拥有 75/85/98 英寸三个版本,搭载 TCL QD-MiniLED 显示屏,结合了 LCD 与 OLED 各自的优势,将传统面光源升级为像素级点光源,同时沿用了量子点 Pro ...

最新文章

  1. 人工智能+能源:能源行业变革新趋势
  2. 交通运输部部长李小鹏谈及自动驾驶:包容失败、反对垄断,力争在国家层面出台指导意见...
  3. Python3算法基础练习:编程100例(6 ~ 10)
  4. mybatis传参数
  5. Lintcode--2(56)--两数之和
  6. php带来互联网的影响,网络对我们的影响有哪些?
  7. centos 6.3最小化安装,无法上网解决方法
  8. 04_NaiveBayes_统计学习方法
  9. w10 Sentinel的下载和安装
  10. tts语音合成小玩具
  11. mysql获取本周的第一天(星期一)
  12. dell 7050台式计算机,Dell OptiPlex 7050 系统指南
  13. Python爬取并分析IMDB电影
  14. 网易校招测试岗位2018
  15. OSChina 周四乱弹 —— 懦夫!你就不能找富婆吗
  16. Visual SourceSafe中的权限管理(转载,已测试)
  17. 人生有三重境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水=
  18. 燕过留声:由 Activity 和 Fragment 的通信方法想到的【WIP】
  19. Ubuntu 18.04下为Firefox浏览器安装flash插件
  20. 同城信息v6.6.3

热门文章

  1. 领峰:普通人如何炒白银技巧和方法有哪些
  2. 模电课程设计_函数发生器
  3. javaweb项目实训总结_JAVA WEB实训总结
  4. 计算机的音量找不到了,电脑音量调节小喇叭不见了修复方法
  5. http://t.cn/xxx的短链接如何生成?(附15款新浪短链接生成器)
  6. DataGear 数据可视化看板整合前端框架Vue
  7. Beautifulsoup提取特定丁香园帖子回复
  8. Windows使用ROS机器人操作系统12记录
  9. 利用MTviz绘制线粒体基因组结构图
  10. 1.定义一个基类 Base,有两个公有成员函数fn1( ),fn2 ( )。 私有派生出Derived类,如何通过Derived 类的对象调用基类的函数fnl() ?