仿真报错 error30220
在用STVD软件仿真程序的时候,有时候报错。弹出一个error30220的警告窗口。
引起这个问题原因有可能是烧写软件STVP软件刚烧写过程序,STLINK 被烧写软件占用了,这时可以把烧写软件STVP关掉,然后重新仿真,就能正常使用了。如果还不行就拔掉STLINK烧写器,关掉软件。重新打开软件,连接烧写器。
烧写程序时报错
有时候在烧写程序的时候会提示RAM中已经存了一个文件
这是因为片子里面已经烧写过程序,而这次烧写程序的时候,有可能点到了第三个按钮上(方块圈起来的),烧写时用第二个文件夹图标的按钮。另外在烧写的时候要注意芯片型号是否选择正确。
烧不进去程序
有时在烧写程序的时候会提示程序烧写不进去。
首先看芯片型号和烧写器是否选择正确,在configure中选择 configure ST Visual Programmer.
然后在Hardware中选择ST-LINK,Port中选阵USB,Programming mode中选择SWIM,Device中选择单片机型号。
如果设置都正确,但是还不能成功烧写程序。
这时候可以在烧写软件中选择 OPTION BYTE选项,然后将ROP后面的选项设置为ON,然后点击烧写按钮烧一次程序,然后在将ROP的选项设置为OFF,在烧写一次程序。这时候就可以正常烧写程序了。
程序仿真时正常运行,但是烧写到单片机后不能正常运行。
首先检查程序烧写步骤是否正常,如果烧写程序步骤都正确,但是程序不能正常执行,这时候需要检查程序中是否用到了具有复用功能的引脚,如果程序中用到了复用功能的引脚,那么就要通过选项字节来设置复用功能。通过程序设置复用功能的方法为:
主要是给0x4803和0x4804这两个地址赋值。具体可以看数据手册
将要设置的值写入OPT选项字节中,并且将需要设置的值取反写入到互补选项字节中。
只有将当前值和它的反码同时写入到选项字节中后,复用功能才能正常开启。
通过设置OPT2中的AFR位,设置需要复用的引脚。
在实际调试的过程中发现,程序中设置的复用功能在仿真的时候可以正常执行,但是程序烧写到芯片内后,复用功能就不能正常执行。经过检查发现在烧写程序的时候,烧写软件在OPTION BYTE中对AFR的设置就会发生改变,所以在烧写程序的时候要对软件进行复用功能设置。
一般情况下,只要在烧写软件中将复用功能设置正确。程序就能正常执行。
如果经过上述方法后,烧写的程序还不能正常执行。这时候检查烧写软件STVP和仿真软件STVD是否同时打开。如果先用仿真软件仿真过后,然后直接用烧写软件烧程序的时候就会出现程序烧写进去之后,程序不能正常执行。要将仿真软件STVD关闭,只打开烧写软件STVP,这时候按照正常步骤烧写,程序就能正常执行了。经测试发现通过仿真软件仿真后,程序会被直接下载到单片机中,不用烧写芯片,程序也能正常执行。
上一篇:单片机ADC采样算法----消抖滤波法
下一篇:STM系列单片机中文参考手册下载方法
推荐阅读




推荐帖子
- LM3S811学习笔记(1)-GPIO输入输出
- LM3S811学习笔记(1)-GPIO输入输出 这是一个简单的输入输出函数 实现了GPIO简单的输入输出功能当按键按下时LED点亮松手后LED熄灭 功能很简单的,高手勿笑。 电路图 程序 #include\"LM3Sxxx.h\" #defineKEY1GPIO_PIN_4#defineLED1GPIO_PIN_5 intmain(void){SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); GPIOPinT
-
loycolor
微控制器 MCU
- STM32 107 CAN过滤器和掩码 设置函数
- 芯片资料没看到如何设置过滤器ID和掩码,结果弄了好久才搞清楚,原来固件库的接口还需要自己加工一下才行。 CP_VOIDCanSetFilter(CAN_NUM_TypeDefbyDevNo,CP_BYTEbyFilterNumber,CP_DWORDdwId,CP_DWORDdwMask,CP_BYTEbIsStdId) { assert_param(byFilterNumber<14); assert_param(IS_CAN_IDTYPE(bIsStdId)
-
likeqi2599
stm32/stm8
- 用过VL53L0X的看看, 读取IC产品ID号不对,是不是买到假货了
- 用过VL53L0X的看看,读取IC产品ID号不对,是不是买到假货了,并且一直报错误号-6(测距中断状态错误) 工作正常ID号为“VL53L0CXV0DH/1$1”,不正常的是“A531536RL0488”。焊了几个都是这个错误,但焊从拆下的VL53L0X就工作正常,所以怀疑是假的,或型号不对。 驱动采用的是官方的库,STM32F042主控。 下面是我从拆下的VL53L0X,焊到自已PCB板上,读到的ID号,换上后工作正常。 用过VL53L0X的看看,读取IC产品ID
-
uzufk
MEMS传感器
- 如何快读打包生成ramdisk-uboot.img
- 有些老的android版本不会发现更新的文件,只有发现文件不存在的时候才会开始重新编译,所以为了安全起见,我们要手动删除掉ramdisk-uboot.img和ramdisk.img才行。 root@android2012-desktop:~/S5PV210-ics/android-4.0.3_r1#./build_android.sh Buildandroidforsmdkv210 [[[[[[[Buildandroidplatform]]]]]]]
-
Wince.Android
嵌入式系统
- 寻大佬解答。。
- 有个问题,想请教一下论坛的大佬们:温度传感器是怎么实现对温度微小变量的放大显示的?就是假如文变量是0.01摄氏度,温度传感器通过什么结构实现?寻大佬解答。。
-
正点航班
传感器
- 单电源的应用
- 本帖最后由btty038于2021-12-2311:47编辑 在运放的实际使用,我们一般为了保持运放的频率特性,一般都采用双电源供电,但有的时候在实际使用,我们只有单电源的情况,也能实现运放的正常工作。首先我们运用运放跟随电路,实现一个VCC/2的分压: 分压电路 当然,如果在要求不是很高的场合,我们可以直接电阻分压,获得+VCC/2,但由于电阻分压的特性所在,其动态的响应速度会非常慢,请谨慎使用。获得+VCC/2后,我
-
btty038
RF/无线
实战 培训 开发板 精华推荐
最新视频课程更多
- 有奖问答 | TE 互连解决方案助力智慧城市智能监控
- 已结束|TI Sitara™ 产品在多协议工业通信中的应用
- 有奖话题:聊一聊论坛里帮助过你的网友!
- 抢先体验!免费试用LM3S8962 评估套件!(10.13~11.30)
- 追更有惊喜:解救被FSM折磨过的你,justd0解析LSM6DSOX有限状态机官方例程
- MPS探索营 “正经玩技术”!创意征集 | 解锁锂电池充电的无限玩法!
- TI Sensor Menu 助力感应全世界――下载有礼!
- 带你零起点入门STM32(专为嵌入式应用而开发的内核)
- 找小伙伴们一起去闯 STM32 F7英雄联盟设计大赛
- 看视频瓜分红包:面向高效高密度开关电源的先进功率 MOSFET 技术及应用