历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2019年01月14日 | STM8关于IWDG看门狗和HSI高速时钟和复位的坑

2019-01-14 来源:eefocus

前言:我的第一篇博客,快被逼疯了。用的STM8S003F3,耗时5天,问题已解决,结局很坑!


但因为这一个问题,我似乎将stm8的时钟,复位,看门狗,iar的使用几乎全吃透了。

忠告:不要随随便便相信百度里头随便找来的资料!


现象:主频只在16MHz时,程序频繁复位不可控,其他现象异常离奇不阐述了,防止伤脑。


正文:前因后果是这样的:


1,我配置了16M的主频


CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部高速时钟,不分频或者:CLK->CKDIVR = 0x00;  //HSIDIV = 0 CPUDIV = 0   cpu时钟 = 16Mhz  发现它频繁自动复位,复位速度极快,找不到原因,问了老总,老总说复位和IWDG有关。


2,没学过也没设置过看门狗,那就配置吧



大体就是让我配置一下,网上各种配置方法,精简后,所有网上内容都统一为:


void IWDG_Init(void) //配置并启动看门狗

    IWDG->KR = 0xCC;    //启动独立看门狗  

    IWDG->KR = 0x55;    //写入解锁  

    IWDG->PR = 0x06;    //256分频

    IWDG->RLR = 0xFF;    //设置重载寄存器

    IWDG->KR = 0xAA;    //锁定并刷新

//    IWDG_Enable();      //使能看门狗 

//    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);    //写使能

//    IWDG_SetPrescaler(IWDG_Prescaler_256);        //预分频256,128KHZ/256 

//    IWDG_SetReload(0XFF);        //设置每次喂狗的计数值。

//    IWDG_ReloadCounter();        //喂狗


}


操作寄存器和库函数都有了,而且是不出错的


void WDT(void)//喂狗

{  

   IWDG->KR = 0xaa;


}


定期喂狗即可,LSI的256分频大概1秒左右喂一次狗,不喂就复位,看起来就很简单了


3我真心是为了解决问题把独立喂狗IWDG都快吃透了,保证看门狗配置绝对没问题了,复位问题还是没解决!正常情况,看门狗是可要可不要的,不是说开机就会自动初始化(老总的隐形误导)。如果我初始化看门狗了,看门狗也应该1秒复位一次,可我1秒复位n多次,那说明跟看门狗无关


4排查发现,又跟时钟有关 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//内部高速时钟,分频2;分频2,4,8,程序不再复位了,就是说16M会自动复位,8M以下就不复位了?可我就是要16M啊   手册说,看门狗用LSI,我主频用HSI,互相不影响吧?(互不影响)


5快疯了,要交差,半路出现问题搞不定   把代码全删了,只留了几句话


 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部高速时钟,不分频


 GPIO_Init(Laser_V1_Port, (GPIO_Pin_TypeDef)Laser_V1_Pin, GPIO_MODE_OUT_PP_LOW_SLOW);    //灯亮


 int i=1000;

 GPIO_WriteHigh(Laser_V1_Port,Laser_V1_Pin);

 while(i--);


 GPIO_WriteLow(Laser_V1_Port,Laser_V1_Pin);


 while(1) { }


按照逻辑,开机亮一下啊,可我现在一直会亮,(因为它复位了)找了个别人的demo试试,还是一样,但是用别的STM8开发板试了就没事!


6最终发现while(1){}去掉,则不再复位了,while(1){}不去掉,灯还是不停的闪   靠,这根本不是复位,而是灯闪的操作被莫名循环了,不是复位导致的!!!!靠,拍电影啊,这么弯弯绕!


7问题没发现,但是问题已解决,那就是:main()函数中,如果while(1)是空的,会执行while(1)意外的代码?不要让while(1)空着就行   这TM什么鬼,明明技术贴,搞得跟走近科学一样(中间过程忽略)


8最后一天,都快放弃了,最后猜想是不是硬件问题?!内心思路:跟硬件有毛关系啊!



最终:Vcap将它的电容从103改为105,复位问题奇迹般不再发生了(1uF)。


为什么我就选了103?!啊?因为我特么从网上百度随便找了个百度文库照抄的!坑啊!(NRST也没加电容!)


推荐阅读

史海拾趣

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

Burr-Brown公司的发展小趣事

Burr-Brown公司,成立于1956年,初期仅有两名雇员,并得益于房地产开发商的支持。公司起初专注于制造模拟集成电路,第一年的销售总额为1600美元。创始人布朗怀揣雄心壮志,提出在一年内将厂房扩大到1200平方英尺,并期望销售收入能增长到7200美元。随着销售的稳步增长,公司不断迁往更大的设施,最终在1965年购买了附近的机场,为公司未来的成长奠定了坚实的基础。

Emerson Embedded Power公司的发展小趣事

在电子行业的早期,Emerson Embedded Power就开始注重技术创新。该公司不断投入研发资源,开发高效、可靠的电源解决方案,以满足不断增长的市场需求。其创新的电源管理技术不仅提高了设备的性能,还降低了能源消耗,赢得了客户的广泛认可。

Brainboxes公司的发展小趣事

Brainboxes一直注重与客户建立紧密的合作关系。公司深入了解客户的需求和应用场景,为其提供定制化的解决方案。此外,Brainboxes还积极参与工业连接领域的发展,与多家知名企业建立合作关系,共同推动行业的技术进步和应用创新。这种客户亲密度和工业连接能力使得Brainboxes在市场竞争中占据有利地位。

General Transistor Corp公司的发展小趣事

面对日益激烈的市场竞争,GTC及时调整市场策略,加强品牌建设。公司注重提升产品质量和服务水平,积极参与国内外各类电子产品展会和论坛,提高品牌知名度和影响力。同时,GTC还建立了完善的销售网络和售后服务体系,为客户提供更加便捷、高效的服务。这些举措有力地推动了公司业务的快速增长和市场份额的扩大。

DURABLE公司的发展小趣事

DURABLE公司成立于20世纪90年代初,最初是一家专注于电子材料研发的小型科技公司。在创始人李博士的带领下,DURABLE不断投入研发资金,积极探索新材料在电子行业的应用。经过数年的努力,公司成功开发出一种具有超高耐用性和稳定性的新型电子材料,这一创新为DURABLE赢得了业界的广泛认可。随着技术的不断成熟,DURABLE的产品逐渐应用于智能手机、平板电脑等高端电子产品中,公司的市场份额也逐年攀升。

问答坊 | AI 解惑

睡眠驾驶报警系统

睡眠驾驶报警系统  该系统可防止驾驶员在睡眠(意识低下)状态下发生事故。它通过监视转向操作和驾驶员心跳状态感知睡眠(意识低下)特有的现象,以判断驾驶者是否开始瞌睡。若认为是轻度瞌睡,则发声及闪亮警告灯,提醒驾驶员采取措施。如果驾驶员未 ...…

查看全部问答>

PCB热干扰及抵制

元器件在工作中都有一定程度的发热,尤其是功率较大的器件所发出的热量会对周边温度比较敏感的器件产生干扰,若热干扰得不到很好的抑制,那么整个电路的电性能就会发生变化。 为了对热干扰进行抑制,可采取以下措施:   (1)发热元件的放置   ...…

查看全部问答>

USB无线网卡驱动在ARM上的移植问题

无线网卡:wl-167g ARM板:S3C2410 内核版本:2.4.18 gcc版本:2.95.3 驱动版本RT73_Linux_STA_Drv1.0.4.0 编译驱动通过,并生成rt73.o,使用insmod rt73.o可以将模块加载到系统中,显示: rtusb init ====> usb.c: registered new driver rt73 但 ...…

查看全部问答>

首次跑通Keil自带STM32的OS例程,发贴自贺并交作业(已修改)

由于俺用的是英培特的EMSTM32V1开发板,内带的例程没RTX的例程. 只好用keil自带的例程BLINKY.C,但是LED的管脚不太兼容. 刚好也学学GPIO~~~哈哈~~~OS和裸奔的BLINKY都算是跑通了~~~ 郁闷的是串口和ADC没跑通~~~不过串口座(公头)有些小,估计是新的 ...…

查看全部问答>

南华大学黄智伟系列--好的系统设计方案是取得好的竞赛成绩的保证

本帖最后由 paulhyde 于 2014-9-15 09:43 编辑 1. 竞赛特点与赛题范围、要求和类型 在“全国大学生电子设计竞赛组委会官方网站”所公布的“全国大学生电子设计竞赛章程”、“关于组织2011年全国大学生电子设计竞赛的通知”和“2011年全国大学生电 ...…

查看全部问答>

【聊聊DSP】我眼中的DSP

我接触DSP较8051系列和arm系列晚,原因无它,资源少(相对8051和arm铺天盖地的资料和例程来说),价格贵,一般应用也用不上。再加上DSP的一般应用项目都是高端的数字处理和数码设备,久而久之,在我脑海里DSP就好像微处理器里面的贵族一样,带着神 ...…

查看全部问答>

单片机驱动蓝牙通信的问题

前提:接收单片机放在开发板上,开发板与电脑相连,接收单片机同时连接一个蓝牙模块。发送单片机通过蓝牙模块向接收单片机发数据,控制LED灯亮灭。 问题:发送单片机发送的数据在电脑上通过串口助手可以看到,接收单片机能收到,但是LED灯无变化。 ...…

查看全部问答>

2440Nand vs DMA速度提升4倍,估计还有提升空间

本帖最后由 lzwml 于 2014-12-18 08:20 编辑 平台:TQ2440开发板、Nand_2Gb_S34ML02G(每页大小2048Byte),不使用DMA传输速率3MB/S,使用DMA目前最大速率13.79MB/S 不使用DMA方式读取循环次数每次读取字节耗时(S)速率(MB/S)300005125.72.5730 ...…

查看全部问答>

多层PCB板数字地、模拟地的接地问题

最近在设计制作一块高速AD/DA板,主要器件有250MSPS的AD以及1GSPS的DA,还有一块较低端的FPGA,原理图中势必有数字地和模拟地之分。在pcb中采用的sggssggs板层结构设计的八层板,第一层和第七层是GND层,这样问题就出现了,这两个地平面也就是两个G ...…

查看全部问答>

C2000 DSP中stack用量的计算

电力电子软件的,一般这一行的代码不多,往往几行代码调几个月,比如并网算法、H桥控制。前段时间同事做通讯的时候,发现TMS320F280XX这款芯片有时会死机。他通讯的软件使用了TI给的库,自己做了通讯的协议层。虽然死机后有主芯片将这块通讯芯片复 ...…

查看全部问答>