【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED
实验原理:
通过STM32的三个GPIO口来驱动LED灯的三个通道:设定GPIO为推挽
输出模式,采用灌电流的方式与LED连接,输出高电平LED灭,输出低电平
LED亮,通过通用定时器TIM3实现500ms定时,每1s变换一次LED颜色。
实验现象:
iCore1S双核心板上与ARM相连的三色LED每1s交替闪烁。
核心代码:
int main(void)
{ system_clock.initialize(); //系统时钟初始化
led.initialize();
timer.initialize();
HAL_TIM_Base_Start_IT(&htim3); while(){
}
}
static int initialize(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig; htim3.Instance = TIM3;
htim3.Init.Prescaler = ; //设置定时器预分频系数
htim3.Init.CounterMode = TIM_COUNTERMODE_UP; //向上计数模式
htim3.Init.Period = ; //设置自动重载值
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; //设置时钟分频因子
HAL_TIM_Base_Init(&htim3); sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig); sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig); return ;
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static int counter = ; //定时1s,每隔1s三色LED闪烁一次
if (TIM3 == htim->Instance)
{
if(counter % == ){
LED_RED_ON;
LED_BLUE_OFF;
LED_GREEN_OFF;
}else if(counter % == ){
LED_RED_OFF;
LED_BLUE_ON;
LED_GREEN_OFF;
}else if(counter % == ){
LED_RED_OFF;
LED_BLUE_OFF;
LED_GREEN_ON;
}
counter ++;
}
}
源代码下载链接:
链接:http://pan.baidu.com/s/1skIkC4d 密码:0tg3

【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED的更多相关文章
- 【iCore4 双核心板_ARM】例程十二:通用定时器实验——定时点亮LED
实验原理: 通过STM32的三个GPIO口来驱动LED灯的三个通道,设定GPIO为推挽输出模式,采 用灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3 实现50 ...
- 【GMT43智能液晶模块】例程十一:通用定时器实验——定时点亮LED
实验原理: 通过STM32的一个GPIO口来驱动LED灯,设定GPIO为推挽输出模式,采用灌电流的方式与LED连接, 输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3实现500ms定时, ...
- 【iCore3 双核心板】例程十二:通用定时器实验——定时点亮LED
实验指导书及代码包下载: http://pan.baidu.com/s/1kTWAAJ9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_ARM】例程十:SYSTICK定时器实验——定时点亮LED
实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出,采用 灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒变 ...
- 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED
实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...
- 【iCore1S 双核心板_ARM】例程一:ARM驱动三色LED
实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PF3接蓝色LED(ARM_LEDB), 引脚PF4接绿色LED(ARM_LEDG),引脚PF5接红色LED(ARM_LEDR), G ...
- 【iCore3 双核心板】例程五:SYSTICK定时器实验——定时点亮LED
实验指导书及代码包下载: http://pan.baidu.com/s/1eQsKcEY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
- 【iCore1S 双核心板_ARM】例程六:WWDG看门狗实验——复位ARM
实验原理: STM32内部包含窗口看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
随机推荐
- P1007 独木桥
P1007 独木桥最少的话是同时朝一个方向,最多可以这样考虑,碰头时不是转向吗?它等价于穿过另一个人,也就是两个人交换,最后取最大值就好了. #include<iostream> usin ...
- HBase 开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 首先, 搭建基于MyEclipse的Hadoop开发环境 相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 比如, CentOS图形界面下如何安 ...
- java反射修改final变量
private void updateFinalModifiers(Field field) throws NoSuchFieldException, IllegalAccessException { ...
- HTTP那些事儿
一.HTTP和HTTPSHTTP协议通常承载于TCP协议之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS.HTTP是超文本传输协议,信息是明文传输 ...
- php创建udp Server
<?php//服务器信息$server = 'udp://127.0.0.1:7002';//----UDP Server$msgEof = "\n";$socket = s ...
- android TextView如何换行?
具体代码是: rb_zuotian.setText("第一行"+"\n"+"第二行"); rb_jintian.setText(DateUt ...
- POIUtil
package com.util.poi; import java.io.ByteArrayOutputStream; import java.io.IOException; import java. ...
- Adding Digital control to Dual tracking LM317 / LM337 Bench supply
Adding Digital control to Dual tracking LM317 / LM337 Bench supply I've been working on my own idea ...
- CentOS禁止packagekit离线更新服务的办法
以CentOs7为例,以root身份登录系统,然后执行以下命令: [root@localhost ~]# systemctl disable packagekit-offline-update.ser ...
- AngularJS中$interval的用法
在AngularJS中$interval用来处理间歇性处理一些事情. 最常用的是: var app = angular.module("app",[]); app.controll ...