永发信息网

STM32定时器中断改成亮三秒灭八秒

答案:2  悬赏:60  手机版
解决时间 2021-03-03 03:25
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"

int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,115200); //串口初始化
LED_Init(); //初始化与LED连接的硬件接口
Timerx_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms
while(1)
{
LED2=!LED2;
delay_ms(200);
}
}
最佳答案
可以发给我看看

再看看别人怎么说的。
全部回答
STM32 定时器是16位的吧 按你的晶振 和分频 最大65536*0.1ms=6.5536s 单个的话怎么整。。达到8s应该也是可以的,不过分频得增加,但是那样就没72的倍数啦 可能有点误差,你这思路很简单啊,开俩个定时器,第一个定时器在初始化的时候就给他使能,即开始计数,在该定时器的中断函数里面把该定时器关了 并对另一个定时器使能,在另一个定时器的中断函数里同样,对第一个定时器使能,并关闭自己,每个定时器的时间根据你要亮灭来调ARR寄存器的值, void TIM4_IRQHandler(void) { if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET){ TIM_ClearITPendingBit(TIM4,TIM_IT_Update); LED1=~LED1; TIM_Cmd(TIM4,DISABLE); TIM_Cmd(TIM3,ENABLE); } } 中断函数大概就这么写,其他的初始化都是直接调库就是了 没必要贴了 主函数里面一开始直接给灯点亮,再吊用俩个初始化就可以了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样快速长胡子
养老保险年审
翻译난너무예ጔ
凤翠缘珠宝一等奖 是不是真的
穿越火线有一个视频的歌是什么:回来吧兄弟..
华英青花地址有知道的么?有点事想过去
我朋友从合肥用申通帮我寄了点东西,3天了还
为什么一年有十二个月
哪位老板订购了专业版生意参谋的,麻烦帮我查
为什么有的图片不能显示 只有一个叉
福建正泰钢管制造公司我想知道这个在什么地方
想申请美国硕士留学,算GPA时数学类课程算不
设函数f(x)在R上满足f(3+x)=f(3-x),f(8+x)=f(
【24ddddd】24分钟是1小时的几分之几5分之3分
天龙八部装备打孔在哪
推荐资讯
重庆成人用品批发详细的点在哪里。
吃中药可以吃蘑菇吗
如何对企业缴纳各项社会保险费用进行会计处理
南宁市哪个市场有批发淡水虾?
二次真空晒版机对人体有什么伤害?
2009年山东美术理科高考考生共有多少人?
杭州迪迪商业展具有限公司在什么地方啊,我要
爱阁家纺工厂店朝阳地址在哪,我要去那里办事
从杭州出发去哪旅游既好玩又省钱?
一个石一个乔念什么
手机插入电脑USB接口后,电脑不显示可移动磁盘
最近长沙有没有演唱会或者音乐节什么的 ?谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?