求助: 我有一块STM8S001J3的小板子,烧录一次之后不能重复烧录。 使用STVP重复烧录显示异常如下: > Programming PROGRAM MEMORY area... Error : Cannot communicate with the device ! Check the SWIM cable connection and check all the needed pin connections on the SWIM connector. If the application code uses Swim Disable and Reset pin as Output or has disabled SWIM Clock Divider: Try Now to SWITCH OFF and ON the application Power Supply while NRST Reset pin is forced low. Error : < PROGRAM MEMORY programming failed. |
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
STM8S003F3 NRST电压低,无法开机
评分
查看全部评分
1、上电检查Vcap和rst管脚的电压是否正常
2、Vcap管脚电容离Vcap脚是不是太远
3、Vcap电容有多大
4、烧录线是不是太长,接触是否良好
5、自己焊的板子的话有没有助焊剂没有清理干净,引起漏电
评分
查看全部评分
评分
查看全部评分
请把代码贴出来。
SWIM管脚不要用作其它功能,否则下不了程序很正常。还有这个片片没有复位管脚,程序中需要特殊处理。
具体看用户参考手册
在看下图
评分
查看全部评分
#include "stm8s001j3.h"
#include "IO.h"
#include "TIME.h"
#include "uart.h"
void IO_INIT(void)
{
PB_DDR |= 0x20;
PB_CR1 |= 0x20;
PB_CR2 = 0x00;
PC_DDR |= 0x80;
PC_DDR |= 0x80;
PC_DDR = 0x00;
//PD_DDR |= 0x02;
//PD_CR1 |= 0x42;
//PD_CR2 |= 0x00;
}
main()
{
_asm("sim");
IO_INIT();
TIM4_INIT(4,250);
_asm("rim");
while (1);
}
管脚链接没有问题。
千万别说,你烧过别的程序。
谢谢!!!!!
已解决。。。。
//为调试程序时可以重复烧录,需在开始程序时增加延时,否则上电就会锁死,无法重复烧录
main()
{
delay(200000);//为调试程序时可以重复烧录,需在开始程序时增加延时,否则上电就会锁死,无法重复烧录
_asm("sim");
INEEPROM();
IO_INIT();
UART1_INIT();
TIM4_INIT(4,250);
LED1 = 1;
LED2 = 0;
_asm("rim");
}
评分
查看全部评分
有一颗IC烧录了其它程序,已经操废了。。。。
我就说嘛,你肯定是使用了SWIM管脚了,否则不可能不行的。你上面贴的程序中没使用1脚。
我上面发的图中,说明很清楚。程序中使用了1脚,还要想重复烧录的话,需要上电加点延时;否则不加延时的话,芯片一上电就是IO功能了,相当于永久锁死。