STC8G的板子突然不能下载程序了
用的STC8G1K17的芯片,在调试代码,一直都能下载修改代码后,代码主要意图是进入掉电模式,然后启用了外部中断2,希望能唤醒系统
下载上面的修改的代码后,再下载,就下载了了
用另一个板子验证,下载上面代码一次后,也是无法再下载了
啥情况!?
附我的主函数:
void main()
{
u16 timeOutCount = 0;
u8 flag = 0;
TIME readTime;
flag_int2 = 0;
delay_ms(1000);
clr_wdt;
GPIO_CTRL_Init();
USART_Init(); //串口初始化
alarm_off(); //关闭报警
work_Led_off(); //关闭工作状态指示灯
power_off_4g(); //关闭4G模组电源
USART1_SendString_NOT_INTERRUPT("hello! sys is start now \r\n");
for(flag=0;flag<5;flag++){//工作状态灯闪烁5次
work_Led_on();
delay_ms(100);
work_Led_off();
delay_ms(100);
clr_wdt;
}
timer_0_Init();
clr_wdt;
IT1 = 0; //上升沿与下降沿都可以触发中断
EX1 = 1; //允许外部中断1
EA = 1;
clr_wdt;
while(1){
delay_ms(1000);
interrupt2_Enable();
printf("go to sleep ! \r\n");
go_to_sleep();//进入掉电模式
delay_ms(100);
printf("sys is wake up ! \r\n");
delay_ms(100);
}
} 本帖最后由 电子DIY小家 于 2022-11-19 20:43 编辑
初步分析,进入睡眠之后无法下载程序的情况主要由于电源没有完全断电导致芯片一直工作在睡眠状态。
建议进行如下尝试:
1.断开外部供电,给主电源电路上的电容进行放电,保证下次可以从正常模式直接进入下载
2.尝试用手册提到的IAP_CONTER寄存器,通过外部中断唤醒等的办法 赋值为0x60强制软件进入下载模式,如果用的不断电下载可以参考手册的这个功能明细进行尝试。
当然最后补充一点,也可以直接设置一个串口接收唤醒,然后通过接受唤醒和特定的串口指令进入下载模式实现程序下载{:lol:} 我现在一直用的这种办法
烧录其实只要保证通讯正常,MCU复位正常,就能正常进入烧录流程,主要注意以下几点:
1.确保通信正常。避免信号线受干扰或者衰减,例如,台式机要接机箱背后的USB接口,连接线不要太长,质量要好;P3.0,P3.1口外围电路不能对IO口电平产生影响等等。
2. 确保芯片上电复位正常。MCU烧录前不要供电,包括IO口都不能有电,板子上不要有大电容。
3. 注意芯片上次烧录时有没有勾选过“下次冷启动时P3.2/P3.3为0/0 才可下载程序”,有的话下载前这两个口要拉低才能下载。
板子上大电容主要影响烧录时对MCU的上电复位。 下载程序与用户代码无关,只要保证能冷启动就可以了。 遇到过N次,就是因为休眠后电流需求特别低,造成深睡不醒,下载的时候不要只是断电一下,短路一下单片机侧的VCC和GND一下下就好。 饭桶 发表于 2022-11-21 12:12
遇到过N次,就是因为休眠后电流需求特别低,造成深睡不醒,下载的时候不要只是断电一下,短路一下单片机侧 ...
(引用自5楼)
{:lol:}
简直拉!莫名奇妙的问题。
最后发现,编程口,拔下来,重新一插就能下载,只能这样了 楼上记得用我们的配套工具最新的是LINK1D
免费+包邮 送 STC-USB Link1D 工具,支持 在线下载 & 脱机下载 & 支持在线仿真
国学芯用 发表于 2022-11-23 10:21
楼上记得用我们的配套工具最新的是LINK1D
免费+包邮 送 STC-USB Link1D 工具,支持 在线下载 & 脱机下载...
(引用自7楼)
怎么申请?你们的下载器 sdlqzql 发表于 2022-11-23 13:59
怎么申请?你们的下载器
(引用自8楼)
技术咨询/采购/询价/免费样品,具体您打 直销电话/销售电话/送样电话/咨询/技术电话: 0513-55012928 <9:00-12:00,13:00-17:30, 工作日的 周一到周五>,会安排专人支持你
页:
[1]