【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(1){} }
static int initialize(void) {TIM_ClockConfigTypeDef sClockSourceConfig;TIM_MasterConfigTypeDef sMasterConfig;htim3.Instance = TIM3;htim3.Init.Prescaler = 7199; //设置定时器预分频系数htim3.Init.CounterMode = TIM_COUNTERMODE_UP; //向上计数模式htim3.Init.Period = 9999; //设置自动重载值 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 0; }
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {static int counter = 0;//定时1s,每隔1s三色LED闪烁一次if (TIM3 == htim->Instance){if(counter % 3 == 0){LED_RED_ON;LED_BLUE_OFF;LED_GREEN_OFF;}else if(counter % 3 == 1){LED_RED_OFF;LED_BLUE_ON;LED_GREEN_OFF;}else if(counter % 3 == 2){LED_RED_OFF;LED_BLUE_OFF;LED_GREEN_ON;}counter ++;} }
源代码下载链接:
链接:http://pan.baidu.com/s/1skIkC4d 密码:0tg3
转载于:https://www.cnblogs.com/xiaomagee/p/7144147.html
【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED相关推荐
- 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED
实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...
- 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...
- 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息
实验现象: 核心代码: int main(void) {/* USER CODE BEGIN 1 */HAL_SD_TransferStateTypedef State;/* USER CODE EN ...
- 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
实验步骤: 1.将SD卡插在SD卡槽中. 2.将跳线冒跳至USB_Device,将USB_Device通过Micor USB线与USB主机(电脑)相连. 3.烧写程序,我的电脑中将出现一个磁盘. 实验 ...
- 【iCore1S 双核心板_ARM】例程十七:FSMC实验——读写FPGA
实验现象: 先烧写FPGA程序,再烧写ARM程序,ARM程序烧写完毕后即开始读写RAM测试,测试成功,绿色ARM·LED亮,测试失败,红色ARM·LED闪烁. 核心代码: int main(void) ...
- 【iCore1S 双核心板_ARM】例程十二:DMA实验——存储器到存储器的传输
实验原理: DAM(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DAM2控制器的数据流0,选用通道0进行数据传输.通过LED的颜色来 判断传输是否成功. ...
- 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
- 【iCore3 双核心板】例程十七:USB_MSC实验——读/写U盘(大容量存储器)
实验指导书及代码包下载: http://pan.baidu.com/s/1qXt1L0o iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore4 双核心板_ARM】例程一:ARM驱动三色LED
实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PB2接红色LED(ARM_LEDR), 引脚PA9接蓝色LED(ARM_LEDB),引脚PA10接绿色LED(ARM_LEDG), ...
- 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验
实验现象: 核心代码: int main(void) {int i,n;char buffer[20];char spi_buffer[20];HAL_Init();system_clock.init ...
最新文章
- PHP 命名空间(namespace)
- Java软件开发:自定义MyBatis持久层框架
- 《盘点那些秀你一脸的秒天秒地算法》(3)
- 【前端】Canvas通过toDataURL保存时在Mac上分辨率扩大问题
- php 中function_PHP中的function函数详解
- 使用GHOST打包制作gho镜像文件
- Kibana启动报错 server is not ready yet的解决方案
- 使用 maven-semantic-release 实现自动化发版
- 从数据仓库到百万标签库,精细化数据管理,这么做就够了
- 解决手机QQ邮箱提醒收不到消息
- I2C之RX-8025驱动
- Mongodb学习(1)安装以及配置
- 什么是伪静态?网站伪静态有什么作用?
- 2020年,『小一的学习笔记』文章合集
- iSpring SDK 9.7 AND iSpring SDK 10.2 AND iSpring SDK 8.7
- Qt Creator fcitx5 中文输入法失效的问题
- js实现案例全选全不选(超详细)
- 学习linux的感受
- Word中选项和内容不在一行,如何用三步一键解决解决
- 3. 查询非计算机科学系中比计算机科学系所有学生年龄都小的学生姓名及年龄。
热门文章
- java 全排列非递归算法_我的字典序全排列java程序,怎么改成非递归算法
- JDBC学习(七、批处理操作)
- spark map函数中使用println无法输出
- Java 异常 (Exception) 剖析 与 用户自定义异常
- MongoDB 概述、下载安装、配置 、启动与连接
- java.net.InetAddress 获取系统 MAC 地址 与 IP 地址
- @TableField注解使用(忽略扫描)
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_6 mybatis中的事务原理和自动提交设置
- cocos2d-Lua视频教程
- 公务员工资分配的一种方法