liangheron 发表于 2016-10-12 14:44

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

本帖最后由 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最新的驱动,才能连接,用以前版本的不行
页: [1]
查看完整版本: 收到的仿真器连接不上,是什么原因。(已经解决)