【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.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
随机推荐
- 爬取w3c课程—Urllib库使用
爬虫原理 浏览器获取网页内容的步骤:浏览器提交请求.下载网页代码.解析成页面,爬虫要做的就是: 模拟浏览器发送请求:通过HTTP库向目标站点发起请求Request,请求可以包含额外的header等信息 ...
- 谈谈MySQL无法连接的原因和分析方法
[可能的原因] MySQL无法连接的原因有很多,比如: 1.数据库的请求量突增,实例连接数超过max_connections,或用户连接数超过max_user_connections, 这种情况连接时 ...
- mysql-ubuntu卸载安装mysql
安装MySQL sudo apt-get install mysql-server mysql-client 查看状态 是否是运行中 sudo service mysql status 启动MySQL ...
- 模拟页面获取的php数据(三)
<?php return array( "aData" => [//通勤方式 "trafficType" => [ 0 => [ &qu ...
- 安卓工作室 android studio文件和代码模板,以及汉化出错问题
安卓工作室 android studio文件和代码模板,以及汉化出错问题 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313 ...
- C#全能数据库操作类及调用示例
C#全能数据库操作类及调用示例 using System; using System.Data; using System.Data.Common; using System.Configuratio ...
- BZOJ.3620.似乎在梦中见过的样子(KMP)
题目链接 /* 896kb 6816ms A+B+A是KMP的形式,于是固定左端点,对于每个位置i,若fail[i]所能到的点k中(k=fail[fail[fail[...]]]),有满足len(l~ ...
- Python3基础之基本问题
问题1: 加法运算符重载 如果我们有两个列表对象,我要将两个列表中的元素依下标进行加和,我们该如何实现? 1列表对象的加法 list1 = [1,2,3,4] list2 = [10,20,30,40 ...
- RadGridView添加序号列
public class RowNumberColumn : GridViewDataColumn { public override System.Windows.FrameworkElement ...
- js实现文字超出部分用省略号代替实例代码
关于超出一定字数用省略号显示的问题,这种要求在我们日常开发的时候经常见到,我们之前基本都是用CSS来完成的,今天给大家分享个Javascript实现这个功能的示例代码,有需要的可以参考借鉴. 话不多说 ...