下载本程序至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点亮发光二极管例程相关推荐

  1. 单片机原理及其应用——单片机控制按键点亮发光二极管

    目录 一.实验要求 二.分析 (一)电路原理 (二)机械式按键的抖动时间与解决方法 三.Proteus仿真软件画原理图 四.Keil编程软件编写程序 五.实验结果 (一)仿真结果 (二)连接电路烧录 ...

  2. Arduino学习篇记录2.1——面包板点亮发光二极管

    具体课程学习来自:2-1 面包板点亮发光二极管-我要自学网 1.面包板介绍: 所说电路面包板通常指免焊面包板.这些都是制作临时电路和测试原型的最好元件,他们是绝对不需要焊接的.如果你不确定一个电路在给 ...

  3. 3 点亮发光二极管(LED)

    1.功能:制作单片机最小系统板,用89C51实现点亮一个发光二极管 2.硬件设计 CPU:89C51 电源:5V 晶振:12M 复位电路:高电平有效 发光二极管 硬件设计电路软件  Proteus 3 ...

  4. 简单点亮发光二极管实例(位操作)

    功能:点亮发光管LED并闪烁

  5. STM32如何快速驱动一款12864LCD液晶模块 3分钟点亮 STM32例程

    I2C总线硬件简单,资源消耗少,只有时钟和数据线.协议设计精巧.易用.灵活:可以传输数据.指令.地址,因此使用广泛,现在几乎所有的MCU及各种控制器都集成了I2C总线.本文章主要介绍I2C接口LCD在 ...

  6. Material Design风格神框架vuetify 学习笔记(八) 基础组件4 头像 扩展面板 消息条 评分...

    一. 头像 v-avatar v-avatar 组件通常用于显示循环用户个人资料图片. 此组件将允许您动态尺寸并添加响应图像.图标和文字的边框半径. <v-avatar color=" ...

  7. LED发光二极管限流电阻的选择-点亮LED灯泡-发光二极管-限流电阻

    一.前言 在物联网开发中,我们经常需要点亮发光二极管,那么在高电流情况下,LED发光二极管很快就会稍微,因为我们需要加上限流电阻起到限流的作用. 二.技术理论 首先,我们要明白串联分压,并联分流的原理 ...

  8. 电子元件-发光二极管与数码管

    本内容包括发光二极管及数码管的基础介绍,数码管段码使用C代码例程等.紫色文字是超链接,点击自动跳转至相关博文.持续更新,原创不易! 目录: 一.发光二极管 1.直插发光管 1)简述   2)根据颜色分 ...

  9. 编写Linux内核模块——第三部分:按键和发光二极管

    [编者的话]了解了基本的内核模块开发.内核空间和用户空间交互之后,终于要开始和硬件设备直接交互了.Linux内核提供了对通用输入输出接口.中断请求等的封装,让驱动开发者可以利用中断来控制硬件线路上的设 ...

最新文章

  1. 日志处理logger
  2. c#属性的相关学习总结。
  3. 【转载】:C# string 特殊的引用类型
  4. vue中渲染对象中属性时显示未定义_揭开 vue 背后的秘密(1)
  5. jQuery 操作 CSS
  6. php 正则表达式 匹配中日韩字符(GBK)
  7. 如何将C语言翻译成汇编语言,如何把汇编语言转换成C语言
  8. poj2109 Power of Cryptography
  9. python进度条 pyqt_pyqt中的进度条没有正确更新以读取fi
  10. Flume架构以及应用介绍[转]
  11. rocketmq新扩容的broker没有tps_揭秘 RocketMQ 新特性以及在金融场景下的实践
  12. sqoop导入与导出总结
  13. 转载 Log4j2在WEB项目中配置
  14. id和instancetype
  15. 华为路由器没有虚拟服务器,华为路由器如何设置 华为路由器设置方法介绍【详解】...
  16. Ubuntu Install Zhengma
  17. 帮你踩坑系列:酷我音乐的歌词获取/下载,示例代码用 python
  18. java.lang.Integer常用方法
  19. 三星发布全球首款太阳能笔记本
  20. 怎样选择合适的ADC芯片

热门文章

  1. 华为p20支持手机云闪付吗_华为手机怎么用云闪付?华为哪些手机支持云闪付
  2. 职业精神--由风味烤串说开去
  3. move region
  4. linux route 刷新_LINUX常用命令-route
  5. NBA历史上那个位置的球员能够拿下最多的MVP呢?
  6. 从汇编角度理解 ebpesp 寄存器、函数调用过程、函数参数传递以及堆栈平衡
  7. 《HALCON机器视觉与算法原理编程实践》第5章 图像预处理-学习笔记
  8. K210入门 MAIX DOCK——点灯(二)
  9. openstack学习笔记之三:keystone简介与手动安装部署
  10. 度分 格式 转换 GPS 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示