12、ARM嵌入式系统:点亮4个LED灯
今天开始进入第二阶段 ,所有模块的初始化在前11章已经介绍过了,接下来开始做点灯等处理操作。
LED灯初始化具体可以参考 :
2、ARM嵌入式系统:LED初始化_cyf31的博客-CSDN博客_arm重置LED模块初始化是对RGB灯进行点灯操作,LED模块对应的管脚可通过如下原理图得知:2_电路原理图_Blazar实验板.pdf如图右侧,关注RGB灯的7个管脚就是对LED等进行初始化的管脚。https://blog.csdn.net/cyf31/article/details/122655693
一、LED灯在板子上的位置
LED灯在板子上的位置在之前介绍过,再回顾一下。如上图,板子上总共有4个LED灯,可以点亮,还可以改灯的颜色。
二、点亮4个LED灯的代码
void SW1_4_Handler()
{
if((GPIOA_PDIR&BIT12)!=BIT12)
{
LED_light(0x01); //LED1
lED1_light_flag=1; //LED1 flag
lED2_light_flag=0;
lED3_light_flag=0;
lED4_light_flag=0;
}
//DOWN KEY handler
else if((GPIOA_PDIR&BIT5)!=BIT5)
{
LED_light(0x02); //LED2
lED1_light_flag=0; //LED1 flag
lED2_light_flag=2;
lED3_light_flag=0;
lED4_light_flag=0;
}
else if((GPIOA_PDIR&BIT13)!=BIT13)
{
LED_light(0x03); //LED3
lED1_light_flag=0; //LED1 flag
lED2_light_flag=0;
lED3_light_flag=3;
lED4_light_flag=0;
}
else if((GPIOA_PDIR&BIT1)!=BIT1)
{
LED_light(0x04); //LED4
lED1_light_flag=0; //LED1 flag
lED2_light_flag=0;
lED3_light_flag=0;
lED4_light_flag=4;
}
}
这段代码简单,就是接收按键的位置,然后 点亮对应的灯,最后再把对应的全局变量置位。
关键在于如何知道用户是按的哪个键呢?按键在板子上对应的位置参见之前的文章。
3、ARM嵌入式系统:按键 初始化_cyf31的博客-CSDN博客_按键初始化ARM嵌入式系统学习,清华大学曾鸣老师的讲课内容代码解读https://blog.csdn.net/cyf31/article/details/122693907
三、点亮某个灯的代码
void LED_light(unsigned char number)
{
switch(number)
{
case 1:
LED_group_reset;
LED_color_reset;
LED1_group_en;
LED_color_all_on;
break;
case 2:
LED_group_reset;
LED_color_reset;
LED2_group_en;
LED_color_all_on;
break;
case 3:
LED_group_reset;
LED_color_reset;
LED3_group_en;
LED_color_all_on;
break;
case 4:
LED_group_reset;
LED_color_reset;
LED4_group_en;
LED_color_all_on;
break;
default:
GPIOC_PDOR&=~0xFFF; //GPIOC0--1--2 light
break;
}
}
4个LED灯点亮代码类似,都是先把灯开关和颜色开关置位初始化,然后再把对应LED灯(1,2,3,4)对应的寄存器设置为0,即打开灯,最后灯颜色即RGB开关设置为1.
12、ARM嵌入式系统:点亮4个LED灯相关推荐
- 【嵌入式系统开发09】重做LED灯以及串口通信查询
[嵌入式系统开发09]重做LED灯以及串口通信查询 要求:安装 stm32CubeMX,配合Keil,分别尝试使用寄存器地址方式(汇编或C,不限) 和HAL库这两种方式,完成下列任务: 1.LED灯重 ...
- 嵌入式系统开发设计——按键控制LED灯实现
一.实验目的 掌握STM32固件库的使用方法: 掌握基于库函数模板的开发方法: 掌握基于固件库进行GPIO端口编程的方法: 4.规范编程格式. 二.实验内容 1.查阅STM32-V5开发板按键.LED ...
- 【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码
- 网络上所谓的《ARM嵌入式系统入门最好的文章》
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位. 广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌入式微处理器 ...
- ARM嵌入式系统malloc的实现(C源码)
在ARM嵌入式系统实现malloc内存分配机制. 在ARM cpu上验证通过. ps:也可在pc ubuntu linux进行验证 #include "include/lib_replace ...
- 8、ARM嵌入式系统:UART初始化
一.UART概述 百度上UART的定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行 ...
- 7、ARM嵌入式系统:LCD/数码管/OLED初始化
一.LCD/数码管模块在板子上的位置 LCD和数码管在板子上都分别有一个插槽. 二.LCD/数码管初始化代码 //SMG init void SMG_Init() { /* PORTB and POR ...
- Esp8266进阶之路10 【小实战下篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- Esp8266进阶之路⑨ 【小实战上篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- Arduino嵌入式开发-如何点亮一盏LED灯
随着人工智能的不断发展,各种各样的传感器层出不穷,传感器的存在和发展,让物体有了触觉.味觉和嗅觉等感官,让物体慢慢变得活了起来.而Arduino是一款便捷灵活.方便上手的开源电子原型平台.包含硬件(各 ...
最新文章
- Vivado Fir Ip核动态更改滤波器系数的两种方法
- bootstrap 栅栏系统
- android studio编译提示错误:android Error:(21, 19) 错误: 程序包R不存在
- 静态服务器显示固定页面,【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】...
- keras 自定义层 2
- python 常用内置函数_Python小白必备的8个最常用的内置函数(推荐)
- sql在线模拟器_力荐一款在线SQL模拟器
- TensorFlow2-神经网络训练
- 僧多粥少?还原 OpenStack 的真实“钱景”
- Android之EditText自定义边框和边框颜色(转载)
- linux grep egrep fgrep bash条件判断 bash测试 if 条件判断
- 【转贴】谈谈企业经营管理中的八大黑洞
- 实战:手把手教你开发React应用-郭永峰-专题视频课程
- MYSQL基础知识+运维面试题
- Linux账号安全控制与PAM认证模块
- composer下面composer.lock有什么用处 以及 如何优雅地删除它
- 家用计算机中PCB板材质,主流的PCB板材料有哪些分类?
- Linux--Linux服务器空间占满解决办法
- 利用群晖nas备份华为手机数据
- java实验三_java实验三实验报告.docx
热门文章
- UE4/UE5 导入abc文件总结
- 7.Redis过期策略底层是如何实现的?
- 矩阵卷积运算的具体过程
- SC_FDE仿真平台:卷积编码 -> 矩阵交织 -> QPSK调制 -> 插入导频 -> 插入CP -> RayleighFading->channel
- 计算机组成与原理第二章,计算机组成原理《第二章》
- ETL数据同步工具Kettle简介
- java 圣思园_圣思园Java8新特性及实战视频教程完整版1
- SketchUp2020下载SketchUp2020下载安装SketchUp草图大师2020下载安装详细教程
- java打包成jar对其进行加密处理防止反编译
- java 网页录音并上传_Java+FlashWavRecorder实现网页录音并上传