今天把定时器看了一遍,觉得很有必要把记下来时常看一看

定时器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---(四)的更多相关文章

  1. 重学前端 --- Promise里的代码为什么比setTimeout先执行?

    首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() ...

  2. 重学 Java 设计模式:实战抽象工厂模式

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!

  3. 重学 Java 设计模式:实战单例模式

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 5个创建型模式的最后一个 在设计模式中按照不同的处理方式共包含三大类:创建型模式.结 ...

  4. 重学 Java 设计模式:实战适配器模式

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术 ...

  5. 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)

    作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...

  6. 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 对于代码你有编程感觉吗 很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固 ...

  7. 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...

  8. 重学 Java 设计模式:实战享元模式「基于Redis秒杀,提供活动与库存信息查询场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 程序员‍‍的上下文是什么? 很多时候一大部分编程开发的人员都只是关注于功能的实现,只 ...

  9. 重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不 ...

随机推荐

  1. Hadoop概括——学习笔记<一>转

    前言 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据库管理人员,也能狗大致了解其特点 首先是概括图(以hadoop2.0为例)  一.Hadoop基础 ...

  2. MASM6.15汇编程序例子

    /***************通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上*****************/ DATAS SEGMENT ;此处输入数据段代 ...

  3. smartGit30天试用过期

    Windows: %APPDATA%\syntevo\SmartGit\OS X:    ~/Library/Preferences/SmartGit/Unix/Linux:  ~/.smartgit ...

  4. centos6.5 64位系统安装 tengine

          1 安装pcre 下载好pcre 上传到服务器 我用的版本是pcre-8.31.tar.gz tar -zxvf pcre-8.31.tar.gz cd pcre-8.31 ./confi ...

  5. 修改weblogic PermGen

    vim /weblogic/Oracle/Middleware/wlserver_10.3/common/bin/commEnv.sh 在第144行,增加环境变量:JAVA_VENDOR=Sun #根 ...

  6. php中curl和fsockopen发送远程数据的应用

    最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起. 这是简单的将一个变量post到另外一个页面 $url = ''; $d ...

  7. PHP后台

    一.ajax提交表单 先引入ajax.js function ajax(url, fnSucc, fnFaild) { //1.创建Ajax对象 var oAjax=null; if(window.X ...

  8. Unity4.3.3激活

    Unity4.X Win版本的破解方法: <ignore_js_op> 1.安装unity4.X,一路按提示下一步,要断网,直到激活运行软件后再联网2.将Unity 4.x Pro Pat ...

  9. 如何使用 PagedList.Mvc 分页

    刚开始找PagedList分页不是例子太复杂,就是写的过于简略,由于对于MVC的分页不太了解,之前使用的都是Asp.Net 第三方控件 + 数据库存储过程分页.还是老外写的例子简捷,https://g ...

  10. PAT 06-1 简单计算器

    想看一般简单计算器实现的看客不好意思了,这不是你想要点东西,此处题设为“只能进行加减乘除”.“都是整数”.”优先级相同“和"从左到右".此题来自PAT(http://www.pat ...