完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
Arduino STM32F103C8T6(BluePill) 教程四教你使用STM32的WDTO(看门狗)功能
感谢CSDN前人教会我们用撸Arduino的方法撸STM32F103,作者最近在帮公司做项目预算有限,采用某宝13元的Blue Pill开发,很多代码直接拿Arduino UNO的来用,考虑好久,还是决定写一些Arduino BluePill的教程,只为方便以后方便大家一起使用。 (不足之处望大神指出) 经常做嵌入式系统的人都知道,系统再稳定也避免不了突发状况 :比如笔者最近在做一款温控在读取温度时,温度探头(K型测温)经常与受体接触,抖动,自然容易受到干扰,芯片在读取温度时候很容易卡死,必须增加看门狗功能因此这里借鉴Arduino UNO系看门狗如下: #include 《avr/wdt.h》 void setup() { pinMode(13,OUTPUT); wdt_enable(WDTO_2S); //开启看门狗,并设置溢出时间为两秒 } void loop() { digitalWrite(13,HIGH); delay(100); digitalWrite(13,LOW); delay(100); wdt_reset(); //喂狗操作,使看门狗定时器复位 } 以上代码引用自: 而STM32库稍有不同需要调用#include 《libmaple/iwdg.h》: #include 《libmaple/iwdg.h》 //调用库 iwdg_init(IWDG_PRE_32,1000); //初始化看门狗,并设置溢出时间为1秒 iwdg_feed(); //喂狗操作,使看门狗定时器复位 以下以LED闪烁为例: #include 《libmaple/iwdg.h》 void setup() { pinMode(PC13,OUTPUT); iwdg_init(IWDG_PRE_32,1000 /开启看门狗,并设置溢出时间为1 } void loop() { digitalWrite(PC13,HIGH); delay(700); digitalWrite(PC13,LOW); delay(700); iwdg_feed(); //喂狗操作,使看门狗定时器复位 } 由于700ms+700ms》1000ms,因此看门狗未得到feed,导致自动复位,因此执行逻辑是PC13.(HIGH)持续700ms,PC13(LOW)持续1000ms-700ms=300ms,STM32F103复位,再次执行,不停循环。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1618 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1545 浏览 1 评论
979 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1597 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:26 , Processed in 0.778220 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号