STM32F103ZE点亮发光二极管例程
下载本程序至STM32F103ZE中,循环闪烁发光二极管,0.5ms亮,0.5ms灭。外部四个发光二极管分别接在GPIOC的PIN4,PIN6,PIN8,PIN9上。程序使用TIMER3进行定时,以中断作为触发条件,在时钟中断程序中改变状态。
下面是例程example.h
#include "stm32f10x.h"
#include "time.h"#define GPIO_LED_PROT GPIOC
#define GPIO_LED_CLK RCC_APB2Periph_GPIOC
#define GPIO_LED_PIN GPIO_Pin_9 | GPIO_Pin_8 | GPIO_Pin_6 | GPIO_Pin_4#define LED_OFF 0
#define LED_ON 1extern uint16_t LED_STATUS;void GPIO_Config(void);
void Tim3_Config(uint16_t per, uint16_t psc);
void sys_init(void);void TIM3_IRQHandler(void);
下面是例程example.c
#include "example.h"uint16_t LED_STATUS = LED_OFF;void GPIO_Config(void)
{GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(GPIO_LED_CLK, ENABLE);GPIO_InitStruct.GPIO_Pin = GPIO_LED_PIN;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIO_LED_PROT, &GPIO_InitStruct);
}void Tim3_Config(uint16_t per, uint16_t psc)
{//step.1. enable the periph timer3RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//step.2. init timerTIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_TimeBaseStructure.TIM_Period = per; TIM_TimeBaseStructure.TIM_Prescaler = psc; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //step.3. timer interuptNVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //step.4. enable timer3TIM_Cmd(TIM3, ENABLE);
}void sys_init(void)
{GPIO_Config(); //init GPIOTim3_Config(4999,7199); //init Timer3 0.5s
}void TIM3_IRQHandler(void)
{ if (TIM_GetITStatus(TIM3, TIM_IT_Update)){TIM_ClearITPendingBit(TIM3, TIM_IT_Update );if(LED_STATUS == LED_OFF){LED_STATUS = LED_ON;}else if(LED_STATUS == LED_ON){LED_STATUS = LED_OFF;}}
}
int main(void)
{sys_init();while(1){if(LED_STATUS == LED_ON){GPIO_SetBits(GPIO_LED_PROT, GPIO_LED_PIN);}else if(LED_STATUS == LED_OFF){GPIO_ResetBits(GPIO_LED_PROT, GPIO_LED_PIN);}}return 0;
}
在keil5环境中编译下载至STM32F103ZE中后,上电执行程序,便可观察到LED灯闪烁(板子不同,引脚选择可能不同)
STM32F103ZE点亮发光二极管例程相关推荐
- 单片机原理及其应用——单片机控制按键点亮发光二极管
目录 一.实验要求 二.分析 (一)电路原理 (二)机械式按键的抖动时间与解决方法 三.Proteus仿真软件画原理图 四.Keil编程软件编写程序 五.实验结果 (一)仿真结果 (二)连接电路烧录 ...
- Arduino学习篇记录2.1——面包板点亮发光二极管
具体课程学习来自:2-1 面包板点亮发光二极管-我要自学网 1.面包板介绍: 所说电路面包板通常指免焊面包板.这些都是制作临时电路和测试原型的最好元件,他们是绝对不需要焊接的.如果你不确定一个电路在给 ...
- 3 点亮发光二极管(LED)
1.功能:制作单片机最小系统板,用89C51实现点亮一个发光二极管 2.硬件设计 CPU:89C51 电源:5V 晶振:12M 复位电路:高电平有效 发光二极管 硬件设计电路软件 Proteus 3 ...
- 简单点亮发光二极管实例(位操作)
功能:点亮发光管LED并闪烁
- STM32如何快速驱动一款12864LCD液晶模块 3分钟点亮 STM32例程
I2C总线硬件简单,资源消耗少,只有时钟和数据线.协议设计精巧.易用.灵活:可以传输数据.指令.地址,因此使用广泛,现在几乎所有的MCU及各种控制器都集成了I2C总线.本文章主要介绍I2C接口LCD在 ...
- Material Design风格神框架vuetify 学习笔记(八) 基础组件4 头像 扩展面板 消息条 评分...
一. 头像 v-avatar v-avatar 组件通常用于显示循环用户个人资料图片. 此组件将允许您动态尺寸并添加响应图像.图标和文字的边框半径. <v-avatar color=" ...
- LED发光二极管限流电阻的选择-点亮LED灯泡-发光二极管-限流电阻
一.前言 在物联网开发中,我们经常需要点亮发光二极管,那么在高电流情况下,LED发光二极管很快就会稍微,因为我们需要加上限流电阻起到限流的作用. 二.技术理论 首先,我们要明白串联分压,并联分流的原理 ...
- 电子元件-发光二极管与数码管
本内容包括发光二极管及数码管的基础介绍,数码管段码使用C代码例程等.紫色文字是超链接,点击自动跳转至相关博文.持续更新,原创不易! 目录: 一.发光二极管 1.直插发光管 1)简述 2)根据颜色分 ...
- 编写Linux内核模块——第三部分:按键和发光二极管
[编者的话]了解了基本的内核模块开发.内核空间和用户空间交互之后,终于要开始和硬件设备直接交互了.Linux内核提供了对通用输入输出接口.中断请求等的封装,让驱动开发者可以利用中断来控制硬件线路上的设 ...
最新文章
- 日志处理logger
- c#属性的相关学习总结。
- 【转载】:C# string 特殊的引用类型
- vue中渲染对象中属性时显示未定义_揭开 vue 背后的秘密(1)
- jQuery 操作 CSS
- php 正则表达式 匹配中日韩字符(GBK)
- 如何将C语言翻译成汇编语言,如何把汇编语言转换成C语言
- poj2109 Power of Cryptography
- python进度条 pyqt_pyqt中的进度条没有正确更新以读取fi
- Flume架构以及应用介绍[转]
- rocketmq新扩容的broker没有tps_揭秘 RocketMQ 新特性以及在金融场景下的实践
- sqoop导入与导出总结
- 转载 Log4j2在WEB项目中配置
- id和instancetype
- 华为路由器没有虚拟服务器,华为路由器如何设置 华为路由器设置方法介绍【详解】...
- Ubuntu Install Zhengma
- 帮你踩坑系列:酷我音乐的歌词获取/下载,示例代码用 python
- java.lang.Integer常用方法
- 三星发布全球首款太阳能笔记本
- 怎样选择合适的ADC芯片
热门文章
- 华为p20支持手机云闪付吗_华为手机怎么用云闪付?华为哪些手机支持云闪付
- 职业精神--由风味烤串说开去
- move region
- linux route 刷新_LINUX常用命令-route
- NBA历史上那个位置的球员能够拿下最多的MVP呢?
- 从汇编角度理解 ebpesp 寄存器、函数调用过程、函数参数传递以及堆栈平衡
- 《HALCON机器视觉与算法原理编程实践》第5章 图像预处理-学习笔记
- K210入门 MAIX DOCK——点灯(二)
- openstack学习笔记之三:keystone简介与手动安装部署
- 度分 格式 转换 GPS 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示