你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库 软复位和查询复位状态用哪个函数?

[复制链接]
Owen 提问时间:2019-2-13 21:55 /
刚从标准库转到HAL库,有些函数找不到;请教大虾,标准库软复位NVIC_SystemReset和查询软复位标志RCC_GetFlagStatus(RCC_FLAG_SFTRST),在HAL库中怎样使用?
收藏 1 评论11 发布时间:2019-2-13 21:55

举报

11个回答
GKoSon 回答时间:2019-2-14 12:27:05
读RCC寄存器

如下
void get_resert_status(void)
{

    if( READ_BIT(RCC->CSR, RCC_CSR_FWRSTF) != RESET)
    {
        log_err("硬件原因复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_OBLRSTF) != RESET)
    {
        log_err("保护字节复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_PINRSTF) != RESET)
    {
        log(INFO,"复位按键复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_BORRSTF) != RESET)
    {
        log_err("低于电压阈值复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_SFTRSTF) != RESET)
    {
        log_err("软件复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) != RESET)
    {
        log_err("内置看门狗复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_WWDGRSTF) != RESET)
    {
        log_err("外置看门狗复位\n");
    }
    if( READ_BIT(RCC->CSR, RCC_CSR_LPWRRSTF) != RESET)
    {
        log_err("低功耗非法模式复位\n");
    }
    __HAL_RCC_CLEAR_RESET_FLAGS();

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

奏奏奏 回答时间:2019-2-14 09:17:47
我在HAL库里面软件复位的办法是:
(1)设置IWDG;
(2)根据条件判断喂狗还是不喂狗。

可能有更直接的办法,但是我不知道。我这种做法的好处是可以通过条件触发复位。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

Owen 回答时间:2019-2-14 12:58:48

试了可以,谢谢
废鱼 回答时间:2019-2-14 16:16:32
NVIC_SystemReset可以复位,
__HAL_RCC_GET_FLAG这个可以用于查询复位原因。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

Owen 回答时间:2019-3-5 10:52:40
安 发表于 2019-2-14 16:16
NVIC_SystemReset可以复位,
__HAL_RCC_GET_FLAG这个可以用于查询复位原因。

谢谢
pjzmj2012 回答时间:2020-4-1 16:54:48
真不明白ST是怎么想的,既然有标准库还要推出hAL库干什么,多那么多不兼容的程序
Owen 回答时间:2020-5-8 22:14:16
pjzmj2012 发表于 2020-4-1 16:54
真不明白ST是怎么想的,既然有标准库还要推出hAL库干什么,多那么多不兼容的程序 ...

STCubemx+HAL+LL是趋势吧,G系列没有标准库了,不接受新事物就被淘汰
pjzmj2012 回答时间:2020-8-28 17:10:01
Owen.li 发表于 2020-5-8 22:14
STCubemx+HAL+LL是趋势吧,G系列没有标准库了,不接受新事物就被淘汰

趋势?这算什么趋势难用的要死。要淘汰老早淘汰了,现在M4 M3核心的芯片选择多了去了,不见得非得用ST的
。到时候淘汰的我看是st
g921002 回答时间:2020-8-29 00:10:41
pjzmj2012 发表于 2020-8-28 17:10
趋势?这算什么趋势难用的要死。要淘汰老早淘汰了,现在M4 M3核心的芯片选择多了去了,不见得非得用ST的
...

那你可以換別家用,比較看看他們BSP寫的怎麼樣。XD

HAL/LL主要是跟middleware和更上層應用銜接。
程式寫不到那種境界,是感受不到它好用的地方。
yangquandan 回答时间:2020-11-20 10:46:18
pjzmj2012 发表于 2020-8-28 17:10
趋势?这算什么趋势难用的要死。要淘汰老早淘汰了,现在M4 M3核心的芯片选择多了去了,不见得非得用ST的
...

个人觉得淘汰不淘汰跟开源度有关,ST的最大好处就是开源性极高,所以才会有很多的人去选择他
jaydai 回答时间:2024-3-1 16:25:56

STCubemx+HAL+LL确实是趋势,效率也高。:)

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版