求助!!程序烧错
本帖最后由 lvfeng123 于 2019-5-5 17:39 编辑在弄那个休眠模式。
由于平生首次做嵌入式的程序,不太熟练。 测试的时候不小心。cpu进入休眠模式退不出来了。
结果再烧程序的时候 报错Internal command error Flash download failed target dll has been canceled
网上查询解决办法: 按住reset键烧再写。 可是我按住还是报错无法停止COTEX_M;
应该怎样做才能让板子退出休眠模式啊?
板子型号是:Nucleo-144 STM32L496
开发工具也是第一次使用不熟练, 是keil-5
补充下我的代码: 逻辑有问题,启动后或者唤醒后会马上休眠.
while(1){
if(dataState == 1){
dataState =0;
HAL_UART_Transmit(&Lpuart1,rxBuffer,DLen,0xFFFF);
}else
SYS_Sleep(&Lpuart1);
}
休眠函数:
void SYS_Sleep(UART_HandleTypeDef *lpuart){
UART_WakeUpTypeDef WakeUpSelection;
WakeUpSelection.WakeUpEvent = UART_WAKEUP_ON_READDATA_NONEMPTY;
HAL_UARTEx_StopModeWakeUpSourceConfig(lpuart,WakeUpSelection);
__HAL_UART_ENABLE_IT(lpuart, UART_IT_WUF);
HAL_UARTEx_EnableStopMode(lpuart);
//HAL_PWR_EnableSleepOnExit();
__HAL_RCC_PWR_CLK_ENABLE();
//__HAL_RCC_PWR_CLK_SLEEP_ENABLE();
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);
//HAL_RTCEx_DeactivateWakeUpTimer(lpuart);
HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI);
//SYSCLKConfig_STOP();
} 本帖最后由 wenyangzeng 于 2019-5-5 07:22 编辑
按住RESET点击下载后要放开RESET,要多试几次。
也可以在ST-LINK UTILITY工具里整片删除 先按住RESET,点击下载,然后松开RESET
或者用ISP,更换一个程序也可以。 将boot设置为ISP模式,重新烧写即可。 把boot0接1,CN11的5、7脚短接,然后上电或按复位按钮,即启动ISP方式。
在ISP方正刷个正常的程序。
BOOT0置1,串口下载正常程序,然后BOOT0置0,然后用STLNK试下。 如果没有记错的话 J-Link 是支持在复位下连接 CPU 然后由调试器解除复位的。你可以试试看把板载 ST-Link 刷成 J-Link OB 再试试。 谢谢各位,解决了, 我下了个STM32 ST-LINK Utilityreset模式下连接st-link. 擦除了内容。 按住Reset不放,点击下载,然后松开Reset
页:
[1]
2