HAL库 软复位和查询复位状态用哪个函数?
刚从标准库转到HAL库,有些函数找不到;请教大虾,标准库软复位NVIC_SystemReset和查询软复位标志RCC_GetFlagStatus(RCC_FLAG_SFTRST),在HAL库中怎样使用?我在HAL库里面软件复位的办法是:
(1)设置IWDG;
(2)根据条件判断喂狗还是不喂狗。
可能有更直接的办法,但是我不知道。我这种做法的好处是可以通过条件触发复位。 读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();
与龙共舞 发表于 2019-2-14 12:27
读RCC寄存器
如下
试了可以,谢谢 NVIC_SystemReset可以复位,
__HAL_RCC_GET_FLAG这个可以用于查询复位原因。 安 发表于 2019-2-14 16:16
NVIC_SystemReset可以复位,
__HAL_RCC_GET_FLAG这个可以用于查询复位原因。
谢谢 真不明白ST是怎么想的,既然有标准库还要推出hAL库干什么,多那么多不兼容的程序 pjzmj2012 发表于 2020-4-1 16:54
真不明白ST是怎么想的,既然有标准库还要推出hAL库干什么,多那么多不兼容的程序 ...
STCubemx+HAL+LL是趋势吧,G系列没有标准库了,不接受新事物就被淘汰 Owen.li 发表于 2020-5-8 22:14
STCubemx+HAL+LL是趋势吧,G系列没有标准库了,不接受新事物就被淘汰
趋势?这算什么趋势难用的要死。要淘汰老早淘汰了,现在M4 M3核心的芯片选择多了去了,不见得非得用ST的
。到时候淘汰的我看是st pjzmj2012 发表于 2020-8-28 17:10
趋势?这算什么趋势难用的要死。要淘汰老早淘汰了,现在M4 M3核心的芯片选择多了去了,不见得非得用ST的
...
那你可以換別家用,比較看看他們BSP寫的怎麼樣。XD
HAL/LL主要是跟middleware和更上層應用銜接。
程式寫不到那種境界,是感受不到它好用的地方。
页:
[1]
2