打印
[STM8]

一仿真就出现提示

[复制链接]
1238|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
午夜粪车|  楼主 | 2017-9-22 23:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8S903K3芯片,可以用STVP烧写程序,但一仿真就出现提示:swim error [30004]:comm timeout ,
沙发
zhaoxqi| | 2017-9-22 23:35 | 只看该作者

换个板子

使用特权

评论回复
板凳
午夜粪车|  楼主 | 2017-9-22 23:38 | 只看该作者
换了个板子也是一样的问题,5V电源没有问题,使用的是16MHZ 外部晶振, 复位电路用的是 5V接4.7K电阻接104电容到地

使用特权

评论回复
地板
wyjie| | 2017-9-22 23:39 | 只看该作者
连接不正常

使用特权

评论回复
5
午夜粪车|  楼主 | 2017-9-22 23:40 | 只看该作者

程序在运行过程中,会出现始终在中断中运行,运行不到主程序,中断标志TIM5->SR1 &= 0xFE;进来就清零了,

使用特权

评论回复
6
jlyuan| | 2017-9-22 23:42 | 只看该作者

一般硬件原因:比如板子不稳定(电源),线太长;

使用特权

评论回复
7
yszong| | 2017-9-22 23:45 | 只看该作者

当然软件设置不正确也有可能;
楼主好好查查;

使用特权

评论回复
8
午夜粪车|  楼主 | 2017-9-22 23:47 | 只看该作者

我在补充一下,连接是正常的,就是仿真时,连续运行一会就会停下来,出现提示:swim error [30004]:comm timeout

使用特权

评论回复
9
yszong| | 2017-9-22 23:50 | 只看该作者
我也碰过,后来不吹电风扇,就OK了-

使用特权

评论回复
10
dengdc| | 2017-9-22 23:52 | 只看该作者

关于STVP烧写程序问题,wanghaibo1026,你是怎么能烧写的?我用STVD可以仿真,烧写程序,但在STVP则用ST-LINK烧写后,提示烧写成功,但实测效果不对或者没反应

使用特权

评论回复
11
heweibig| | 2017-9-22 23:54 | 只看该作者
应该中断里采用用TIM5_SR1=0X00;(清除更新标志UIF).我的初始化是
void TIM5_Init()
{
        TIM5_IER = 0x00;      //禁止中断
     TIM5_EGR = 0x01;     //允许产生更新事件         
     TIM5_PSCR=0X07;     //分频系数是128
       TIM5_ARRH =0x03;    //定时时间数值
     TIM5_ARRL =0xD0;  
       TIM5_CNTRH=0X01;
       TIM5_CNTRL=0XE8;                 
       TIM5_IER=0X01;        //开定时器中断
}
另外,不知你的中断号搞对否.     

使用特权

评论回复
12
午夜粪车|  楼主 | 2017-9-22 23:55 | 只看该作者

我的第一个问题可能是供电电源问题,:具体情况如下:
   我的系统电路时用AC220供电,整流后经BUCK电路后得到12V,再经7805给单片机供电,整个系统和交流电供地,仿真时,程序可以通过STVD运行,但是对系统的按键电路进行操作时,就会出现swim error [30004]:comm timeout ;
   而后我将系统电路改成和交流电源隔离过的直流电源供电,仿真时,对系统的按键电路进行操作时一切正常;现在分析可能是系统和交流电源供地时是不是仿真电路有影响,不知道大家有没有用过和我一样的供电方式;
2:第二问题,我开始怀疑是不是晶振导致的,后将系统由外部晶振改为内部晶振,程序运行后,就没有出现过类似问题,但很奇怪,当我再改成外部晶振后,这个问题也不能复现,所以,现在也不能确定是外部晶振的问题;问题仍在找,希望大家给点提示。

使用特权

评论回复
13
lizye| | 2017-9-22 23:57 | 只看该作者
可能我买的仿真器受环镜影响大吧,反正我开电风扇的话,就会出现wim error [30004]:comm timeout ;外部晶振我用过。没问题

使用特权

评论回复
14
shimx| | 2017-9-22 23:59 | 只看该作者
我发我的初始化给你看一下:
                 GPIO_Init();                   //GPIO断口初始?
                 //CLK_CKDIVR= 0X00;            //内部16MHZ不分频
                 //判断当前时钟,如果不是外部晶振(HSE)的话,则切换为HSE
                 if(CLK_CMSR != 0XB4)
                 {
                           CLK_SWCR |= 0X02;          //SWEN置1,使能切换
                           CLK_SWR=0XB4;              //目标时钟源--0XB4指HSE
                           while((CLK_SWCR&0X08)==0); //等待,直到切换成功,SWIF被置1
                           CLK_SWCR = 0;              //消除标志位
                           CLK_CSSR |= 0X01;          //打开时钟安全系统CSS
                 }
                 TIM4_Init();                   //TIM4定时器初始化
                 TIM2_Init();                   //TIM2定时器初始化
                 ADC_Init();                    //AD初始化
                 PWM_INIT();                    //PWM初时化
                 CFG_GCR =0X01;                 //SWIM模式被禁用,SWIM引脚被用作普通I/O口。
                 TIM4_CR1|=0X01;                //启动定时器4
                 TIM2_CR1|=0X01;                //启动定时器2
                 ITC_SPR6|=0XC0;                //定时器TIM4的优先级为3级
                 _asm("rim");                   //允许MCU全局中断

使用特权

评论回复
15
jiaxw| | 2017-9-23 18:30 | 只看该作者

这是我用STM8S003F3P6(SOP20)的调交流可控规。我现一般不用外部晶振的,因为有时摸一下电路板,死机了。内内晶振的话,则OK

使用特权

评论回复
16
shimx| | 2017-9-23 18:32 | 只看该作者
你是不是打开看门狗?我也用到看门狗,正常啊.
                 IWDG_KR=0XCC;               //启动硬件看门狗定时器(IDWG)
                 IWDG_KR=0X55;               //解除IWDG_PR,IDWG_RLR寄存器写保护功能
                 IWDG_RLR=0XFF;              //写入新的重装初值(看门狗时间=510ms)
                 IWDG_PR=0X5;                //选择新的分频系数=5
                 IWDG_KR=0XAA;               //恢复写保护功能
                 while (1)
                 {
                         if(t_us >= 40)                     //10ms
                         {
                                 t_us = 0;
                                 IWDG_KR=0XAA;     //喂看门狗
                                 key_scan();       //按键扫描
                                 display_man();    //显示管理
                                 display();        //显示驱动
                                 key_deal();       //按键处理
                                 time_man();           //时间管理
                                 buz_man();        //蜂鸣器管理
                                 PWM_OUTPUT();     //PWM输出控制
                        }               
                 }      

使用特权

评论回复
17
午夜粪车|  楼主 | 2017-9-23 18:33 | 只看该作者
刚刚做了一些实验,系统改用直流电源供电,仿真和程序都一切正常

使用特权

评论回复
18
spark周| | 2017-9-23 18:35 | 只看该作者

改成内部晶振和外部晶振都能正常工作?

使用特权

评论回复
19
午夜粪车|  楼主 | 2017-9-23 18:37 | 只看该作者

嗯,但是系统一但改回交流AC220供电,CPU的5V电源一但和电网的零线供电就出现了以上2个问题, 不能仿真,程序工作也出错,

使用特权

评论回复
20
liliang9554| | 2017-9-23 18:41 | 只看该作者
不知道,有没有人使用过交流降压不隔离的5V电源供电系统

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝