STM32中断定时,控制LED灯

 1 #include "led.h"
 2
 3 void TIM3_Int_Init(u16 arr,u16 psc)
 4 {
 5     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 6     NVIC_InitTypeDef NVIC_InitStructure;
 7
 8     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //设置TIM3时钟使能
 9
10
11     TIM_TimeBaseStructure.TIM_Period = arr; //设置重装载寄存器的周期
12     TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟频率除数的预分频值
13     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
14     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上的计数模式
15     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //TIM3的初始化
16
17     TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //TIM3更新中断使能
18
19
20     NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
21     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先0级
22     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从占优先3级
23     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
24     NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器
25
26
27     TIM_Cmd(TIM3, ENABLE);  //使能TIM3
28 }
29 //定时器3中断服务程序
30 void TIM3_IRQHandler(void)   //TIM3中断
31 {
32     if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
33         {
34         TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
35         LED2=!LED2;  //取反
36         }
37 }
 1 #include "stm32f10x_conf.h"
 2 #include "led.h"
 3 #include "key.h"
 4 #include "delay.h"
 5 #include "timer.h"
 6 #include "usart.h"
 7
 8 int main(void)
 9 {
10
11     delay_init();
12     LED_Init();
13     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
14     uart_init(115200);
15     TIM3_Int_Init(4999,7199);
16     //((4999+1)*( 7199+1))/72=500000us=500ms  延时500ms
17   while(1)
18   {
19         LED3=!LED3;
20         delay_ms(1500);
21         /*当数值为2000时,延时时间变快。当数值为1500以下,
22         延时时间为x/1000,只设了几个值。其他值都还没有尝试。
23         */
24   }
25
26 }
时间: 2024-11-07 21:46:19

STM32中断定时,控制LED灯的相关文章

enc28J60 网页控制LED灯

软件IDE:Arduino 1.6.3 1.库的安装: 从https://github.com/jcw/ethercard 下载源码包,解压,复制ethercard-master文件夹到Arduino的安装目录所在的库文件夹下:D:\Program Files (x86)\Arduino\libraries,并且重命名为EtherCard 2.打开Arduino 复制相关代码,保存,编译,上传. 3.设置电脑ip为192.168.2.2 4.浏览器登录192.168.2.1 参考: lucade

嵌入式Linux学习入门:控制LED灯

记录自己linux学习过程,让自己能够一直坚持下去 1.原理图分析: nLED_1, nLED_2, nLED_4, 给低电平则对应LED灯亮,高电平则对应LED灯灭, S3C2440芯片GPF4-GPF6对应nLED_1, nLED_2, nLED_4, 所以代码里面操作GPF4-GPF6就可以控制LED灯亮灭. 2.写代码前了解事项 第一步:将GPF0-GPF4配置为输出功能 第二步:控制GPF0-GPF4输出低电平 3.编写代码 1 .text 2 .global _start 3 _st

arduino入门学习实现语音控制LED灯

需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭. 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val int ledpin=10;//定义数字接口13 void setup() { Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致.当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致. pinMode(ledpin,OUTPUT);//设置数字10

BLE 安卓APP控制LED灯的实现(转)

源:BLE 安卓APP控制LED灯的实现 //注:参考AmoMcu源代码修改. 打开APP,检查蓝牙是否打开 BluetoothAdapter mBluetoothAdapter; final BluetoothManager bluetoothManager =(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); //

arduino 红外遥控器控制LED灯

/* 日期:2016.9.1 功能:红外遥控器控制LED灯 开,关,闪烁 元件: 跳线公公头 * 5 led, 220欧电阻 红外接收管,红外遥控 接线: 红外灯面向自己从左到右分别接 IO3, GND, 5V LED 负极接GND 正极串联电阻接 IO5 红外1-9口编码: FF30CF 1 FF18E7 2 FF7A85 3 FF10EF 4 FF38C7 5 FF5AA5 6 FF42BD 7 FF4AB5 8 FF52AD 9 参考:http://www.arduino.cn/threa

socket通信——多角度控制LED灯亮灭

今天以物联网网关(网关链接)以服务器,在多个客户端就做一个非常简单的功能:点亮或熄灭网关上的LED灯.目前想到了三种方式,分别是:TCP&UDP测试工具.自编Java客户端和Mono Android客户端.相信这会很有意思的. 1.服务器端 在使用或编写客户端之前,首先来看看服务器端代码,其专门通过串口烧进网关内部 OutputPort led = new OutputPort((Cpu.Pin)GPIO_NAMES.PF8, false); Socket sc; Socket ss = new

云中树莓派(4):利用声音传感器控制Led灯

云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感器控制Led灯 1. 声音传感器及其配置 声音传感器如下图所示: 将 VCC 引脚接入树莓派 5V 引脚,将 GND 引脚接入树莓派 GND 引脚,将 OUT 引脚接入树莓派 GPIO20. 要注意,模块在环境声音强度达不到设定阈值时,OUT输出高电平(1),当外界环境声音强度超过设定阈值时,模块O

TI-RTOS 控制LED灯

TI将FreeRtos放在自家芯片上,于是得到了TI-RTOS,两者的区别我还不太清楚,近日因为项目需要,开始试用TI-RTOS,先来一个点灯的实验吧,算是 hello world. 这次手上的板子是 CC1310 LaunchPad Rev 1.3, 上面有两个灯,两个按键,照常理先调灯的驱动会更简单些.打算做成一个灯亮,一个灯1秒闪一次. 这样的功能一般是和定时器,IO打交道,不过在os上,定时可以暂时用task_sleep来代替,好在TI-RTOS默认启用这个模块的,用起来相当方便. IO

利用DoHome APP和音箱控制LED灯实验参考步骤

准备材料: Arduino Uno 一块 Arduino 扩展板        购买链接 DT-06模块一个       购买链接 安卓手机一个 小度音箱一个 小灯珠一个 杜邦线若干 1.DT-06固件的烧录 1.1打开ESP模块下载工具ESPFlashDownloadTool,选择需要下载的固件,填写下载地址,推荐使用  ESP8266 Download TOOL,配置信息如下: 1.2 选择实际的串口,选择下载速度 1.3点击ERASE,先插除,再点击START,开始下载 工具下载及详细请看

中断——按键控制LED状态

程序功能:按键控制LED状态,中断实现. 现象描述:当按下k键时,LED0总会闪烁,从而影响其他LED. 注意:用杜邦线把P3.2引脚(INT0)与开关K引脚相连. 程序: ORG 0000H LJMP MAIN ORG 0003H ;外部中断0入口 LJMP INT0 ORG 0200H MAIN:SETB EA ;开启总中断 SETB EX0 ;开启外部中断 0,即P3.2引脚 CLR IT0 ;设置成 低电平触发方式 SJMP $ ;主程序只等待中断 INT0:DEC P1 ;外部中断 0