1977|9

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

可能我是唯一一个用代码玩坏开发板子的人。 [复制链接]

 

话不多说直接先上代码


#include <stdio.h>
#include "wm_hal.h"

void Error_Handler(void);
static void GPIO_Init(void);
static void WDG_Init(void);

WDG_HandleTypeDef hwdg;

int main(void)
{
    SystemClock_Config(CPU_CLK_240M);
    printf("hello worldrn");
    HAL_Init();
    GPIO_Init();
    WDG_Init();
    while (1)
    {
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
        HAL_Delay(300);
        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
        HAL_Delay(500);
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2);
        HAL_Delay(500); 
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2);
        printf(".");
        HAL_Delay(1000);
    }

    return 0;
}

static void WDG_Init(void)
{
    hwdg.Instance = WDG;
    hwdg.Init.Reload = 1 * 1000 * 1000; // 5s
    if (HAL_WDG_Init(&hwdg) != HAL_OK)
    {
        Error_Handler();
    }
}

static void GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};

    __HAL_RCC_GPIO_CLK_ENABLE();

    GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);

}

void Error_Handler(void)
{
    while (1)
    {
    }
}

void assert_failed(uint8_t *file, uint32_t line)
{
    printf("Wrong parameters value: file %s on line %drn", file, line);
}

按下rest_n 后  三个灯亮一次。 串口的hello 都没打出来就 板子休眠 了。  还有救吗?w806开发版


Waiting for receive CCC ...
Waiting for sync device timeout.
Waiting for restarting device...
Current model: W800
Sync success, w800
BLE  MAC:FFFFFFFFFFFF
WIFI MAC:FFFFFFFFFFFF
Please wait for Erase flash ...
>>>>>>>>>>>>>>>>>>>>Erase flash fail timeout..
Try 115200 baud download file ...
Wait for the chip to be ready ...
 

 

最新回复

用什么工具,怎样恢复?   详情 回复 发表于 2021-10-20 16:41
点赞 关注
 
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

>>>>>Erase flash fail timeout..

Try 2000000 baud download file ...

Wait for the chip to be ready ...

用2000000 也一样。。

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

在我不懈努力的冲击下 恢复了。 总结就是 让软件工作多个 下载线程, 不停的按rest_n 

 
 
 

回复

6807

帖子

0

TA的资源

五彩晶圆(高级)

4
 

 让软件工作多个 下载线程这个可以理解,,

不停的按rest_n 比软件跑的还快?

 
 
 

回复

1942

帖子

2

TA的资源

版主

5
 

芯片休眠了确实没法下载程序了,之前我也遇到过,只要想办法让芯片退出休眠就可以了。

 
 
 

回复

1411

帖子

3

TA的资源

版主

6
 
你不是第一个,我才是!这种情况,用官方的工具恢复

点评

用什么工具,怎样恢复?  详情 回复 发表于 2021-10-20 16:41
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

7
 

没看到你代码里那里有休眠啊。

点评

hwdg.Init.Reload = 1 * 1000 * 1000; //  这个代码 使芯片挂起了?反正有这个板子到时间就不工作了。?就很奇怪。  不是喂狗吗。  详情 回复 发表于 2021-10-20 16:32
这种情况可以配合复位试试,我以前用freescale的KW40时真烧程序弄坏过,而且当时网上类似的情况非常多。无法恢复。  详情 回复 发表于 2021-10-20 15:54
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

9792

帖子

24

TA的资源

版主

8
 
freebsder 发表于 2021-10-20 15:51 没看到你代码里那里有休眠啊。

这种情况可以配合复位试试,我以前用freescale的KW40时真烧程序弄坏过,而且当时网上类似的情况非常多。无法恢复。

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

9
 
freebsder 发表于 2021-10-20 15:51 没看到你代码里那里有休眠啊。
  • hwdg.Init.Reload = 1 * 1000 * 1000; //  这个代码 使芯片挂起了?反正有这个板子到时间就不工作了。?就很奇怪。  不是喂狗吗。
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

10
 
annysky2012 发表于 2021-10-20 13:12 你不是第一个,我才是!这种情况,用官方的工具恢复

用什么工具,怎样恢复?

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表