(一)概述
stm32有两个看门狗:硬件看门狗(LSI 40KHz,时间精度不高)和窗口看门狗(APB1)。
(二)硬件看门狗实现代码
IWDG_HandleTypeDef hiwdg;
// 硬件看门狗初始化
static void MX_IWDG_Init(IWDG_HandleTypeDef *pHiwdg)
{
pHiwdg->Instance = IWDG;
pHiwdg->Init.Prescaler = IWDG_PRESCALER_4;
pHiwdg->Init.Reload = 0xFFF; // Tout = ((4 * 2^prer) * rlr) / 40 = 409ms,看门狗溢出时间
if (HAL_IWDG_Init(pHiwdg) != HAL_OK)
{
Error_Handler();
}
}
int main(void)
{
........
MX_IWDG_Init(&hiwdg);
........
HAL_IWDG_Start(&hiwdg);
while (1)
{
........
HAL_IWDG_Refresh(&hiwdg);
}
}
(三)初始上电获取硬件看门狗复位状态
if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) != RESET)
{
}/* 硬件看门狗复位 */
__HAL_RCC_CLEAR_RESET_FLAGS();
(四)看门狗复位后IO状态的保持方法
法一:硬件方式,锁存器。
法二:软件方式,当需要关注的IO状态改变时,立马存在Flash中,初始上电判断复位类型是硬件看门狗,就进行Flash读取和IO操作。该方式的缺点:由于stm32的Flash写操作是页写,每次写之前,都要先擦除,而且Flash的写次数有限,故经常写,Flash经常写的区域有可能被写坏。
法三:软件方式,BKP+初始判断处理(stm32F103RC大容量,备份寄存器是42个16位的寄存器)。
// BKP
#define BKP_DATA_LEN 16
#define BKP_MAX_DATA_LEN 42
#define BKP_INTERVAL_POINT 10
// 写备份寄存器
void BKP_Write(uint8_t *pSourcedata, uint32_t num)
{
assert_param(num <= BKP_MAX_DATA_LEN);
volatile uint32_t *pDestData;
RCC->APB1ENR |= (1 << 27 | 1 << 28); // 电源接口时钟/备份时钟开启
PWR->CR |= 1 << 8; // 允许写入后备寄存器
if (num > BKP_INTERVAL_POINT)
{
pDestData = &(BKP->DR1);
for (uint32_t i = 0; i < BKP_INTERVAL_POINT; i++)
{
*(pDestData + i) = *(pSourcedata + i);
}
pDestData = &(BKP->DR11);
for (uint32_t i = 0; i < (num - BKP_INTERVAL_POINT); i++)
{
*(pDestData + i) = *(pSourcedata + i + BKP_INTERVAL_POINT);
}
}
else
{
pDestData = &(BKP->DR1);
for (uint32_t i = 0; i < num; i++)
{
*(pDestData + i) = *(pSourcedata + i);
}
}
}
// 读备份寄存器
void BKP_Read(uint8_t *pReadData, uint32_t num)
{
assert_param(num <= BKP_MAX_DATA_LEN);
volatile uint32_t *pSourceData;
if (num > BKP_INTERVAL_POINT)
{
pSourceData = &(BKP->DR1);
for (uint32_t i = 0; i < BKP_INTERVAL_POINT; i++)
{
*(pReadData + i) = *(pSourceData + i);
}
pSourceData = &(BKP->DR11);
for (uint32_t i = 0; i < (num - BKP_INTERVAL_POINT); i++)
{
*(pReadData + i + BKP_INTERVAL_POINT) = *(pSourceData + i);
}
}
else
{
pSourceData = &(BKP->DR1);
for (uint32_t i = 0; i < num; i++)
{
*(pReadData + i) = *(pSourceData + i);
}
}
}
上一篇:[HAL库学习之路]5.IWDG-独立看门狗
下一篇:最后一页
推荐阅读
史海拾趣
在电子行业中,HEC Inc(以下简称HEC)作为一家知名的科技公司,其发展历程充满了挑战与机遇。以下是五个关于HEC发展起来的相关故事,每个故事均基于事实描述:
1. 技术创新引领市场突破
HEC自成立之初便致力于技术创新,在通信设备领域取得了显著成就。公司研发的高效路由器和交换机产品,凭借其卓越的性能和稳定性,迅速在市场中占据一席之地。特别是在5G技术兴起的背景下,HEC提前布局,成功推出了多款支持5G网络的通信设备,满足了市场对高速、低延迟网络连接的迫切需求。这些技术创新不仅巩固了HEC在通信行业的领先地位,也为其后续的市场拓展奠定了坚实基础。
2. 环保理念推动可持续发展
随着全球对环保问题的日益重视,HEC积极响应号召,将绿色技术融入产品研发和生产过程中。公司推出的多款电子产品,如智能手机和平板电脑,均采用了环保材料和节能设计,有效降低了产品生命周期中的碳排放。此外,HEC还建立了完善的电子废弃物回收体系,实现了资源的循环利用。这些环保举措不仅提升了公司的品牌形象,也为其赢得了更多消费者的青睐和市场的认可。
3. 跨界合作拓展业务领域
为了进一步扩大市场份额,HEC积极寻求跨界合作机会。公司与多家知名汽车制造商合作,将先进的通信技术应用于车载智能系统中,提升了驾驶体验和行车安全。同时,HEC还与智能家居厂商合作,推出了多款智能家电产品,实现了家居设备的互联互通和远程控制。这些跨界合作不仅丰富了HEC的产品线,也为其带来了新的增长点。
4. 全球化战略布局
为了应对日益激烈的国际竞争,HEC制定了全球化发展战略。公司在全球范围内设立了多个研发中心和销售网络,以更好地了解当地市场需求并快速响应。通过整合全球资源,HEC成功推出了多款符合不同国家和地区消费者需求的产品。此外,公司还积极参与国际展会和交流活动,提升了品牌知名度和国际影响力。
5. 应对挑战实现转型升级
面对行业内的激烈竞争和技术变革,HEC始终保持着敏锐的洞察力和强大的适应能力。公司不断调整产品结构,加大研发投入,推动产品向高端化、智能化方向发展。同时,HEC还积极拥抱数字化转型,通过大数据、云计算等先进技术优化生产流程和管理模式,提高了生产效率和产品质量。这些努力使HEC在挑战中实现了转型升级,保持了持续稳健的发展态势。
随着产品质量的不断提升和市场口碑的积累,Accetek公司开始积极拓展国内外市场。公司参加了多个国际电子展览和交流活动,与全球多家知名企业建立了合作关系。同时,公司还加强了品牌建设和市场推广工作,通过广告宣传、媒体合作等方式提高品牌知名度和美誉度。这些举措有效地提升了公司的市场竞争力,为公司的快速发展提供了有力支持。
近年来,Fairchild公司在全球范围内与众多知名企业建立了合作关系。其中,与华为的合作尤为引人注目。华为作为全球领先的通信设备制造商,对供应商的要求极为严格。然而,Fairchild公司凭借其出色的产品质量、客户支持和公司间的成功合作,从众多供应商中脱颖而出,成为华为的核心合作伙伴之一。华为对Fairchild公司的认可不仅体现在订单量的增加上,还体现在对其产品和服务的高度评价上。
近年来,国博电子凭借其卓越的技术实力和市场表现,荣获了多项荣誉和奖项。包括“2023-2024年度射频芯片市场最佳产品奖”、“2022年度联合创新体最高绩效奖励支持”等。这些荣誉不仅是对公司技术实力和市场地位的认可,也是对公司未来发展潜力的肯定。国博电子将继续秉持“用‘芯’创造未来”的企业文化,致力于成为全球射频电子领域的行业领导者。
GPS只能在室外定位,但若需要在室内实现定位功能怎么办呢?利用ZIGBEE技术实现定位就是一种不错的解决方案,同时该技术也可在室外实现定位。 资料下载-- http://www.wxlsoc.com/download/shows.aspx?id=28… 查看全部问答∨ |
|
请教:WINCE里如何预设WIFI IP和WIFI的相关登录设置? 比如要预设IP、网关、DNS, 还有WIFI的加密方式、密码。 我想应该是修改注册表,但是我不知道在哪改,请指教。 全部的总数奉上!… 查看全部问答∨ |
有谁能提供USB鼠标键盘驱动,模拟鼠标键盘自动按键,以前用了wion.vxd,但是USB不可以 有谁能提供USB鼠标键盘驱动,模拟鼠标键盘自动按键,以前用了wion.vxd驱动,PS/2接口可以模拟按键盘, 但是USB接口不可以模拟按键 如果人能提供这样的驱动程序,本人不胜感激,大大给分,给分... … 查看全部问答∨ |
求教各位高手,我现在想让skype在wince 5.0 上跑起来 ,我在网上看到说要找到skype for ppc 依赖哪些库文件 ,请问如何察看阿 , 我用vc下depends 和evc下depends 察看的 ,怎么出来的都是windows XP 下的库文件 ...… 查看全部问答∨ |
|
WINCE 6.0, VS2005 程序是一个任务管理器,几个对话框,主要操作是CTabCtrl加载几个对话框,(对话框由dialog create),在几个dialog中分别做的是1.每隔一段时间获得CPU和内存的状态,画图 2.获得当前运行的进程,显示于列表中 3.获得当前可见的 ...… 查看全部问答∨ |
与前面已讲述的电场屏蔽及磁场屏蔽的机理不同,电磁屏 蔽对于电磁波的衰减有三种不同的机理: x 当电磁波在到达屏蔽体表面时,由于空气与金属的交界面上 阻抗的不连续,对入射波产生的反射。这种反射不要求屏蔽 材料必须有一定厚度,只要求交界 ...… 查看全部问答∨ |
介绍一下KEIL C51所支持的C语言和汇编语言混合编程的方法! 51单片机是最早的单片机,也是在国内应用最广泛的单片机,为大家所喜爱!但执行速度较其它单片机较慢。因此在编程时更加要注重程序的执行效率及编程上的技巧处理,最大限度的发挥其性能,满足项目开发的实际需要。在嵌入 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况