打印
[开发工具]

收到的仿真器连接不上,是什么原因。(已经解决)

[复制链接]
2228|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 liangheron 于 2016-10-12 15:28 编辑

申请的板子,收到了,包装很赞。兴奋的写好了程序,装了驱动程序,能检测到串口,串口是com3,结果 2016-10-12 14:32:10 通讯错误,请检查连接并重试!是哪里原因呢,弄了半天也没弄好。


下面是写的测试程序,测试定时器和io口,每一秒led2切换一次,一分钟led3,一小时led4,谁有空测试一下
/****************************************************************************************
*
* 文件名: main.c
* 项目名: myTest
* 版 本: v1.0
* 日 期: 2016年10月12日 12时43分23秒
* 作 者: 飞雪吹云
*
****************************************************************************************/
#include<KF8V216.h>
#define LED2 P0LR0 //秒闪烁标志
#define LED3 P0LR1//分闪烁标志
#define LED4 P0LR2//小时闪烁标志
unsigned char Scnt, Mcnt, Hcnt;   //秒计时,分计时,小时计时
/**********************全局变量结束*************************/


/************************
* 函数名     :Delay_200us
* 函数功能:短时间延时
* 入口参数:无
* 返回          :无
************************/
void Delay_200us()
{
    unsigned char i = 60;
    while(--i);
}

void Init_fun(void)
{
    OSCCTL = 0x60;              //    设置为8M

    /*****端口初始化********/
    TR0 = 0x08;                    //设置P03端口为输入
    TR1 = 0x00;                    //设置P1端口为输出

    P0LR = 0;
    P1LR = 0;

    P0 = 0;
    P1 = 0;

    /****初始化定时器0*****/
    OPTR = 0x05;                //定时器0,分频为1:64,现在晶振为8M,一条指令为0.5us(1/(8M/4)=0.5us ),则经过32us,计数1
    T0 = 0x64;                    //设定定时5MS,  0X64=100D  即计数156后为256溢出产生中断,而156*32=4992 约为5000us=5ms
    INTCTL = 0XA0;              //清T0的标志位 T0IF=0 T0的使能位T0IE = 1 总中断AIE = 1
    PCTL = 0X00;                //禁止中断优先级 IPEN = 0
}

void main()
{
    unsigned char i;
    Init_fun();                    //初始化
    AIE=1;
    while(1)
    {

    }
}
//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{
    if(T0IF)
    {
        T0IF = 0;                                //清零中断标志
        T0 = 0x64;                                //T0重新赋值
        if(Scnt++ >= 200)                    //判断是否达到1s记时   5ms*200 = 1s
        {
            LED2=!LED2;                        //清零计数器
            Scnt=0;                             //个位相加
            if(Mcnt++>= 60)
            {
                Mcnt = 0;
                LED3=!LED3;
                if(Hcnt++>= 60)
                {
                    Hcnt = 0;
                    LED4=!LED4;
                }
            }
        }
    }
}
//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}




沙发
liangheron|  楼主 | 2016-10-12 15:29 | 只看该作者
还是驱动程序的原因,根据官方提供的方法三解决。已经测试了文中的程序,可以运行,测试定时中断成功

使用特权

评论回复
板凳
yanyanyan168| | 2016-10-12 15:32 | 只看该作者
是不是仿真器开关拨到“脱机”了?

使用特权

评论回复
地板
liangheron|  楼主 | 2016-10-12 19:54 | 只看该作者
不是,是驱动问题,官方有个解决的方法,其实就是需要用ft232最新的驱动,才能连接,用以前版本的不行

使用特权

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

本版积分规则

79

主题

189

帖子

1

粉丝