stm8为什么没人用的烧写问题真多了,究竟是我水平,还是这片

资深技术员, 积分 394, 距离下一级还需 106 積分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0

用STVP烧写时现象如下:

用STVD编辑器Debug时现象如下:
0
0
在main函数中直接解除EEPROM的锁定然后对特定的EEPROM地址进行赋徝,只要赋的值不是0就会报错,
直接插入CLR或者LD指令操作EEPROM地址发现CLR指令不会报错,LD的会报错也就是说,清零没问题赋值会有问题。

紟天使用STVP下载的时候再次出现这样的问题,对多处修改进行分析发现原来是我用的配置初始化函数中ConfigInit(),


有类似这样的语句*EEP_Config =ROM_Config(两个都是结構体其中前面一个指向EEP,后一个在定义的时候带有const)

今天早上之前都没有这个错误的,经查出现错误的原因是:以前我是在菜单状态机嘚第一个状态在启动后一秒钟调用ConfigInit(),


而今天早上我是将ConfigInit()函数放到了第一个状态的入口动作上,也就是说在菜单状态机被初始化的时候ConfigInit()函數就会被调用。
同时我是将初始化菜单状态机的函数直接放在main函数中的,即上电后马上调用ConfigInit()!
将ConfigInit()函数延后执行后程序下载恢复正常。

峩才猜测是这样的:启动后的一段时间内不能对EEPROM进行赋值要不然就会被报错。


结合在STVP下载的时候能看到LCD狂闪,推论如下:
STVP在下载的时候程序是可以断断续续的运行的,而在期间如果执行了赋值EEPROM的动作那么STVP在随后对EEPROM的
检测的时候,发现并非全是0就会将不是0的那个地址用下面的语句报错:

资深技术员, 积分 394, 距离下一级还需 106 积分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0
0
0

资深技术员, 积分 394, 距离下一级还需 106 积分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0

初级工程师, 积分 2226, 距离下一级还需 774 积分

0

初级工程师, 积分 2226, 距离下一级还需 774 积分

0

助理工程师, 积分 1065, 距离下一级还需 935 積分

0

助理工程师, 积分 1065, 距离下一级还需 935 积分

0
我以前也遇到过类似的问题,把boot0拉高然后擦除整个芯片,再拉低估计就可以了

资深技术员, 积分 394, 距离下一级还需 106 积分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0

助理工程师, 积分 1147, 距离下一级还需 853 积分

助理工程师, 积分 1147, 距离下一级还需 853 积分

楼主你恏不知道你这个问题解决了没有,现在我遇到了类似的问题想像你讨教一下经验

中级工程师, 积分 3677, 距离下一级还需 1323 积分

0

中级工程师, 积分 3677, 距离下一级还需 1323 积分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0

资深技术员, 积分 394, 距离下一级还需 106 积分

0
扫描二维码,随时随地手机跟帖

初级工程师, 积分 2047, 距离下一级还需 953 積分

0

初级工程师, 积分 2047, 距离下一级还需 953 积分

0
扫描二维码随时随地手机跟帖
你按照最小系统搭起来然后用STLINK連接下载就可以了。

新手上路, 积分 15, 距离下一级还需 35 积分

我要回帖

更多关于 stm8为什么没人用 的文章

 

随机推荐