完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
//第一组热电阻控制
if(rtdout1 GPIO_ResetBits(GPIOD,GPIO_Pin_0); //关闭阀门1 GPIO_ResetBits(GPIOD,GPIO_Pin_1); //关闭阀门2 RCC_APB1PeriphClockCmd(RCC_APB1Periph_tiM2,DISABLE); //时钟关闭 } else { if(rtdout1>tmax) //温度是否大于最大值 { GPIO_SetBits(GPIOD,GPIO_Pin_0); //开启阀门1 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //时钟开启 } else { } if(TIM_GetFlagStatus(TIM2,TIM_FLAG_Update)!=RESET&&rtdout1>tmax) //判断定时1分钟是否溢出并且此时温度大于最大值 { GPIO_SetBits(GPIOD,GPIO_Pin_1); //是的话开启阀门2 } else { } } void Timer_Configuration(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period=1999; //周期1999 TIM_TimeBaseStructure.TIM_Prescaler=35999; //预分频 72MHZ/(35999+1)=2000HZ TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //72MHZ TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //模式为向上计数 TIM_TimeBaseStructure.TIM_RepetitionCounter=60; //按照72MHZ计算 定时为1S 重复60次计数为1分钟 TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); //初始化时钟 TIM_ClearFlag(TIM2,TIM_FLAG_Update); //清除中断溢出标志 TIM_ARRPreloadConfig(TIM2,DISABLE); //禁止ARR预装载缓冲器 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //允许溢出 TIM_Cmd(TIM2,ENABLE); //允许计数 } void NVIC_Configuration(void) { #ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //选择优先级组别 NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel; //中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //0级抢占式优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //0级优先级响应 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中断 NVIC_Init(&NVIC_InitStructure); } 这个是我写的温控逻辑与定时器中断设置 当温度小于tmin时阀门关闭 时钟关闭 当温度大于tmax时开启阀门1 时钟开启计数 当1分钟以后如果温度还大于tmax开阀门2 问题在于 我进行模拟实验的时候 温度大于tmax时候阀门1开启 1分钟以后阀门2不开启 不知道问题出在哪里 希望大虾和大神们帮助下!谢谢了!我估计是时钟问题! |
|
相关推荐
5个回答
|
|
|
软件仿真一下看看.
|
|
|
|
|
|
这个结果已经用KEIL加板子实验 就是定时器溢出不起作用 也可以说是定时功能好像没有起作用 原子哥帮我看看哪里出现问题导致不能计时 反复开启时钟 计时器是否启动
还有TIM2计时是否自动累加 如不自动累加 将要怎么设置! |
|
|
|
|
|
|
|
|
|
|
|
悲剧的是 没有对于TIMER定时的例程 唯一的问题就是为何中断溢出没有 本质问题就是 计时无效 原子哥能否给予一些建议 实在找不出哪里有问题
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1894浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:10 , Processed in 0.961376 second(s), Total 83, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
589