完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
//定时器3中断服务程序
void TIM3_IRQHandler(void) { if(TIM3-》SR&0X0001) //产生更新事件 { LED1=!LED1; LED0=!LED0; } TIM3-》SR&=~(1《《0);//清除中断标志位 } //通用定时器中断初始化 //这里时钟选择为APB1的2倍,而APB1为36M //arr:自动重装值。 //psc:时钟预分频数 //这里使用的是定时器3! void Timerx_Init(u16 arr,u16 psc) { TIM3-》SMCR&=0xfffffff8; //从模式控制寄存器设置预分频时钟由内部时钟提供 RCC-》APB1ENR|=1《《1; //TIM3时钟使能 TIM3-》ARR=arr; //设定计数器自动重装值 TIM3-》PSC=psc; //预分频器7200,得到10Khz的计数时钟,//CK_CNT=Fck_psc/([15:0]+1) TIM3-》CR1|=1《《4; //计数器向下计数 TIM3-》CR1|=1《《7; //每一次更新事件(UEV)时,才把预装在寄存器的内容送到影子寄存器 TIM3-》CR1&=0xfffffffd; //设置UDIS允许更新事件(UEV) TIM3-》CR1&=0xfffffffb; //设置更新请求源 TIM3-》CR1|=0x01; //使能计数器 TIM3-》DIER|=1《《0; //允许更新中断 MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2 } int main(void) { Stm32_Clock_Init(9); //系统时钟设置72MHZ delay_init(72); //延时初始化 uart_init(72,9600); //串口初始化 LED_Init(); //初始化与LED连接的硬件接口 Timerx_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms while(1) { delay_ms(200); TIM3-》EGR|=0x0001; } } 这样设置以后,个人做了测试,可以在计数器在计数到2000时,设置了TIM3-》EGR|=0x0001;更新事件发生,并产生了更新事件中断,同时,对计数器重新初始化。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1845 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1647 浏览 1 评论
1116 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
745 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1700 浏览 2 评论
1958浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
766浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
595浏览 3评论
618浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
578浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-4 08:09 , Processed in 0.653640 second(s), Total 43, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号