关于野火mini led的学习
学习目标:
掌握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的学习相关推荐
- asp用于取代什么技术_苹果Mini LED晶粒四季度量产,用于新iPad Pro,三安光电或成赢家...
来源 :快科技 9月23日消息,天风证券知名分析师郭明錤发布最新报告.由于OLED屏主要集中在韩国供应商体系下,这也加快了苹果要打破这种局面的节奏,很快他们就要推出使用Mini LED屏的移动设备了. ...
- 海信E8H Mini LED 电视评测
海信E8H采用了超过500个分区的MiniLED显示技术,将具备3000颗以上的MiniLED灯珠,在MiniLED灯珠的加持下,产品的峰值亮度可以达到1600nit,从而实现对于HDR片源的更好还原 ...
- 500+分区Mini LED,海信电视E8H让画质更纯净
10年前,海信以分区背光为名,开启了一场显示技术变革,十年后,海信技术的全新升级仍然聚焦在体现电视根本价值的画质方面.Mini LED 新品E8H 以创新的黑科技.颠覆性的画质,再次诠释海信在高端影像 ...
- 苹果展开新显示器带动高阶需求:Mini LED背光技术
TrendForce LED 研究(LEDinside)指出,苹果甫发表一款采用全新 LED 背光方案的 Pro Display XDR 32 吋 6K 显示器,带动显示器产业积极找寻高阶产品的新技术 ...
- ios研发Mini LED技术 iPad/MacBook尺寸将更大
著名苹果分析师郭明錤(Ming-Chi Kuo)的研究称,苹果在未来几年可能推出几款新产品,而这几款新产品使用的是一种新显示技术,能够更好地显示颜色和对比度. 下一代"mini LED&qu ...
- 苹果屏幕尺寸_搭载 mini LED 屏幕的 iPad Pro 要来了?!
点击上方蓝色字体,关注我们 去年,分析师郭明錤曾预测苹果最快将在 2020 年末推出搭载 Mini LED 屏幕的产品,首款产品可能是 iPad Pro 或者 MacBook.郭明錤称 Mini LE ...
- Mini LED,显示技术的春天?!
Mini LED,显示技术的春天?! 近几年Mini LED和Micro LED似乎成为显示技术的新宠.各种各样的线上线下研讨会层出不穷.行业各大巨头斥巨资进入,一片欣欣向荣的景象.本文尝试对几种主流 ...
- 车载Mini LED持续升温,各家厂商进展如何?
去年,Mini LED背光技术在车载显示赛道上初露头角,多款搭载 Mini LED 屏幕的汽车陆续发布.随着新能源车渗透率的提高,车载显示成为明确增长的赛道,为Mini LED背光进入车载带来利好. ...
- 阿迪达斯发布公司新战略;联合利华美容个护产品将弃用“正常”一词;TCL电子发布高端Mini LED智屏 | 美通企业日报...
今日看点:阿迪达斯公布新的公司战略"掌控全场",聚焦三大重点领域.联合利华旗下所有美容个护品牌在包装以及广告中将弃用"Normal"相关表达.意大利高端牛仔品牌 ...
- TCL X11G参数 TCL X11G Mini LED 评测怎么样
TCL X11G 拥有 75/85/98 英寸三个版本,搭载 TCL QD-MiniLED 显示屏,结合了 LCD 与 OLED 各自的优势,将传统面光源升级为像素级点光源,同时沿用了量子点 Pro ...
最新文章
- 人工智能+能源:能源行业变革新趋势
- 交通运输部部长李小鹏谈及自动驾驶:包容失败、反对垄断,力争在国家层面出台指导意见...
- Python3算法基础练习:编程100例(6 ~ 10)
- mybatis传参数
- Lintcode--2(56)--两数之和
- php带来互联网的影响,网络对我们的影响有哪些?
- centos 6.3最小化安装,无法上网解决方法
- 04_NaiveBayes_统计学习方法
- w10 Sentinel的下载和安装
- tts语音合成小玩具
- mysql获取本周的第一天(星期一)
- dell 7050台式计算机,Dell OptiPlex 7050 系统指南
- Python爬取并分析IMDB电影
- 网易校招测试岗位2018
- OSChina 周四乱弹 —— 懦夫!你就不能找富婆吗
- Visual SourceSafe中的权限管理(转载,已测试)
- 人生有三重境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水=
- 燕过留声:由 Activity 和 Fragment 的通信方法想到的【WIP】
- Ubuntu 18.04下为Firefox浏览器安装flash插件
- 同城信息v6.6.3
热门文章
- 领峰:普通人如何炒白银技巧和方法有哪些
- 模电课程设计_函数发生器
- javaweb项目实训总结_JAVA WEB实训总结
- 计算机的音量找不到了,电脑音量调节小喇叭不见了修复方法
- http://t.cn/xxx的短链接如何生成?(附15款新浪短链接生成器)
- DataGear 数据可视化看板整合前端框架Vue
- Beautifulsoup提取特定丁香园帖子回复
- Windows使用ROS机器人操作系统12记录
- 利用MTviz绘制线粒体基因组结构图
- 1.定义一个基类 Base,有两个公有成员函数fn1( ),fn2 ( )。 私有派生出Derived类,如何通过Derived 类的对象调用基类的函数fnl() ?