重学STM32---(四)
今天把定时器看了一遍,觉得很有必要把记下来时常看一看
定时器3初始化,很简单,开时钟,装载ARR,PSC寄存器就行了,想要开什么中断在DIER寄存器设置就行了(不过当时我花了很长时间,用寄存器真的不熟)
void Timer3_init(u16 arr,u16 psc)
{
RCC->APB1ENR |= 1<<0;
TIM3->CR1 |= (1<<7)|(1<<4); //自动预装载,向下计数
TIM3->PSC = psc; //预分频寄存器 72000000/psc 定时器工作频率
TIM3->ARR = arr; //装载值
TIM3->DIER |= 1<<0;
MY_NVIC_Init (3,3,TIM3_IRQn,2);
TIM3->CR1 |= (1<<0); //定时器使能
}
//中断函数
void TIM3_IRQHandler()
{
while(TIM3->SR & (1<<0))
{
TIM3->SR &= ~(1<<0);
LED1 = !LED1;
}
}
后来又用定时器的PWM利用led编了呼吸灯的程序:(花了很长时间,,,)
先开启时钟(定时器的,特别一个辅助时钟,不开不能正常工作),再设置CHx所在的IO口为复用推挽输出,需要重映射的使用AFIO->MAPR寄存器,然后再配置TIM3->CCER,TIM3->CCMR1 寄存器,向上向下计数,高低电平有效,pwm1还是pwm2,自己选择就好了,看情况决定
void Timer3_pwm_Init(u16 arr,u16 psc)
{
RCC->APB1ENR |= 1<<1; //使能TIM3
RCC->APB2ENR|=1<<0; //开启辅助时钟 //必须要开定时间1时钟,说是什么辅助时钟,到现在还不知道怎么回事,
RCC->APB2ENR|=1<<3; //使能PORTB时钟
MYGPIOB ->CRL &= ~0x00F00000; //设置PB5为推挽复用输出
MYGPIOB ->CRL |= 0x00B00000;
AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
AFIO->MAPR|=1<<11; //部分重映像,TIM3_CH2->PB5
TIM3->ARR = arr;
TIM3->PSC = psc;
TIM3->CCER |= 1<<4; //通道2输出使能
TIM3->CR1 |= (1<<7); //自动预装载,向下计数 这两个可以默认,自己知道就行了
TIM3->CCER |= (1<<5); //输出低电平有效
TIM3->CCMR1 |= 1<<11; //CH2使能输出
TIM3->CCMR1 &= ~(7<<12); //清零bit4-6
TIM3->CCMR1 |= (6<<12); //设置110,为pwm1模式
TIM3->CR1 |= (1<<0); //使能定时器
}
主函数:(这个自己看着写就行了)
int main()
{
u8 dir = 0;
short crr_count = 0;
Stm32_Clock_Init (9);
LED_Init ();
delay_init(72);
Timer3_Init(899,0);
while(1)
{
delay_ms(10);
if (dir == 0)
crr_count ++;
else
crr_count --;
if (crr_count > 899)
dir = 1;
if (crr_count < 0)
dir = 0;
TIM3->CCR2 = crr_count ;
}
}
重学STM32---(四)的更多相关文章
- 重学前端 --- Promise里的代码为什么比setTimeout先执行?
首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() ...
- 重学 Java 设计模式:实战抽象工厂模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!
- 重学 Java 设计模式:实战单例模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 5个创建型模式的最后一个 在设计模式中按照不同的处理方式共包含三大类:创建型模式.结 ...
- 重学 Java 设计模式:实战适配器模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术 ...
- 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)
作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...
- 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 对于代码你有编程感觉吗 很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固 ...
- 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...
- 重学 Java 设计模式:实战享元模式「基于Redis秒杀,提供活动与库存信息查询场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 程序员的上下文是什么? 很多时候一大部分编程开发的人员都只是关注于功能的实现,只 ...
- 重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不 ...
随机推荐
- 直接取HANA数据库数据,动态QUERY
"COPY别人的TYPE-POOLS:ADBC. DATA LV_SQL TYPE STRING. DATA LV_FROM TYPE STRING. DATA LV_WHERE TYPE ...
- Java--常用类summary
/* 2:API的概述(了解) (1)应用程序编程接口. (2)就是JDK提供给我们的一些提高编程效率的java类. 3:Object类(掌握) (1)Object是类层次结构的根类,所有的类都直接或 ...
- lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法
参考: http://www.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinal http://www.slideshare.ne ...
- win7_64bit下桌面及开始菜单中图标变为.lnk
以下内容参考整理与MSDN: 1.首先 win+r 2.打开运行程序 3.输入: regedit 4.找到: 计算机\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WIND ...
- XHR——XMLHttpRequest对象
创建XMLHttpRequest对象 与之前众多DOM操作一样,创建XHR对象也具有兼容性问题:IE6及之前的版本使用ActiveXObject,IE7之后及其它浏览器使用XMLHttpRequest ...
- FZU 2092 收集水晶 bfs+记忆化搜索 or 暴力
题目链接:收集水晶 一眼看过去,觉得是普通的bfs,初始位置有两个.仔细想了想...好像如果这样的话..........[不知道怎么说...T_T] dp[12][12][12][12][210] 中 ...
- 什么是RAID
RAID 维基百科,自由的百科全书 关于与「 RAID 」同名的其他主题,详见「 RAID (消歧义) 」. 独立硬盘冗余阵列 ( RAID , R edundant A rray of I ndep ...
- ASP.NET MVC 基于角色的权限控制系统的示例教程
上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...
- 《算法竞赛入门经典》5.12TeX括号
/* *在TeX中,左双引号是``,右双引号是''.输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式. *样例输入:"To be or not to be,"quoth ...
- 神奇的NOIP模拟赛 T1 LGTB 玩扫雷
LGTB 玩扫雷 在一个n m 的棋盘上,有位置上有雷(用“*” 表示),其他位置是空地(用“.” 表示).LGTB 想在每个空地上写下它周围8 个方向相邻的格子中有几个雷.请帮助他输出写了之后的棋盘 ...