话不多说直接先上代码
#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 ...
>>>>>Erase flash fail timeout..
Try 2000000 baud download file ...
Wait for the chip to be ready ...
用2000000 也一样。。
芯片休眠了确实没法下载程序了,之前我也遇到过,只要想办法让芯片退出休眠就可以了。
引用: freebsder 发表于 2021-10-20 15:51 没看到你代码里那里有休眠啊。
这种情况可以配合复位试试,我以前用freescale的KW40时真烧程序弄坏过,而且当时网上类似的情况非常多。无法恢复。
引用: freebsder 发表于 2021-10-20 15:51 没看到你代码里那里有休眠啊。
引用: annysky2012 发表于 2021-10-20 13:12 你不是第一个,我才是!这种情况,用官方的工具恢复
用什么工具,怎样恢复?