当前位置: 首页 > news >正文

河南省住房和城乡建设厅投诉网站温州瓯海区营销型网站建设

河南省住房和城乡建设厅投诉网站,温州瓯海区营销型网站建设,外贸网站seo推广教程,区域信息网站怎么做在用正点原子STM32F4开发板,搭配对应的button历程时,发现运行一会,button都无法使用了,以为是emwin死机了,但是看到Led还在闪烁,排除系统死机问题。那就是emwin的任务没有运行起来,但是打断点后…

在用正点原子STM32F4开发板,搭配对应的button历程时,发现运行一会,button都无法使用了,以为是emwin死机了,但是看到Led还在闪烁,排除系统死机问题。那就是emwin的任务没有运行起来,但是打断点后,仍然可以进入,说明任务也没问题。接着又添加了txt控件,不停的更新显示。这才发现,button不可以可能是触摸屏有问题。在出现问题时,触摸屏那里读取的mode都是0和ff。正常的应该是0x80之类的。 所以基本判定是触摸驱动的问题。然后处理结果如下:

我发现GT9147_RD_Reg(GT_GSTID_REG,&mode,1),没有触点时,多次能读到0xFF(当然还有别的异常值)。用示波器跟踪发现STM32F407发送0x28,GT9147竟然没有ACK。整个波形全是乱的。在CTIIC.C中,优化了三个函数,测试OK(无触点或者数据没有准备oK,GT9147_RD_Reg(GT_GSTID_REG,&mode,1); mode=0;松手,可以观察到3次mode=0x80,我不是太明白为何有3次;有一个触点,mode=0x81,多个mode=0x8*)

应该是从侧先ACK,后有主侧SCL变高电平,优化之
u8 CT_IIC_Wait_Ack(void)
{
    u8 ucErrTime=0;
    CT_SDA_IN();      //SDA设置为输入  
    CT_IIC_SCL=0;
    delay_us(2);
    while(CT_READ_SDA)
    {
        ucErrTime++;
        delay_us(2);   
        if(ucErrTime>250)
        {
            CT_IIC_Stop();
            return 1;
        }
    }
    delay_us(2);
    CT_IIC_SCL=1;
    delay_us(2);   
    CT_IIC_SCL=0;
  delay_us(3);   
    return 0;  
}
增加SDA到SCL之间的延时,解决发地址没有ACK问题
void CT_IIC_Send_Byte(u8 txd)
{                        
    u8 t;   
    CT_SDA_OUT();         
    CT_IIC_SCL=0;//拉低时钟开始数据传输
    CT_Delay();
    for(t=0;t<8;t++)
    {              
        CT_IIC_SDA=(txd&0x80)>>7;
        txd<<=1;
    delay_us(2);//pnhhit            
        CT_IIC_SCL=1;
        CT_Delay();
        CT_IIC_SCL=0;   
        CT_Delay();
    }     
}   
读数据延时放大,100us,是我大致放大,可以在细化 ,比如50us      
u8 CT_IIC_Read_Byte(unsigned char ack)
{
    u8 i,receive=0;
     CT_SDA_IN();//SDA设置为输入
    //delay_us(30);//pnhhit  这个相对myiic.c文件是正点原子他们自己加的,但是我测试还是不够长
    delay_us(100);
    for(i=0;i<8;i++ )
    {
        CT_IIC_SCL=0;               
        CT_Delay();
        CT_IIC_SCL=1;     
        receive<<=1;
        if(CT_READ_SDA)receive++;
    delay_us(1);//pnhhit        
    }                       
    if (!ack)CT_IIC_NAck();//发送nACK
    else CT_IIC_Ack(); //发送ACK   
     return receive;
}

GPIO模拟I2C,有点问题,这里随便说说:
1)SDA,SCL最好设置成OD门,否则当CPU驱动SDA为高,IC应答ACK为低,SDA信号上出现半高电平。
2)不同的IC存放数据和准备数据的物理时间可能不同,比如GT9147和TI流量计芯片QB27520就不同
3)GPIO模拟时没有对SDA和SCL的状态裁决,不管IC的状态,强行控制,是很简单粗暴的

哎,正点原子的例程不能随意放到项目中用,问题太多,不稳定。

http://www.yayakq.cn/news/634183/

相关文章:

  • 网站建设商标在哪个类别网站建设问题表
  • 谷歌网站管理员账号宁德城乡建设网站
  • 长沙网站优化厂家东莞网站制作哪家公司好
  • 网站开发诺亚科技重庆网页设计公司排名
  • 兰溪市网站建设公司京东短链接生成器
  • 网站配色案例分析建设网站文案标识语
  • 有哪些网站可以做问卷调查免费友情链接平台
  • mcms怎么做网站wordpress火车头发布模块
  • 网站建设的实习报告郑州正规的网站设计
  • 绩溪建设银行网站企业网站怎么建站
  • 做网站网页兼容性如何维护自己的网站
  • 承德网站建设怎么建设的wordpress 转盘插件
  • 南宁营销型网站专家wordpress 位置定位
  • 万网空间上传网站活动策划书模板范文
  • 低价网站建设扬州wordpress docker好处
  • 企业网站建设情况 文库电商平台网站设计公司
  • vs2015做网站沉默是金下一句怎么接
  • 如何在自己网站开发互动视频哪有做奇石网站
  • qq上如何做文学网站电脑制作ppt的软件叫什么
  • 东莞网站建设17惠州网站小程序建设
  • 免费微网站系统知乎怎么做自己网站推广产品
  • 外贸怎么做公司网站ps做的网站怎么到网站上预览
  • 门户网站开发研究报告seo排名关键词点击
  • 有没有做gif的专门网站wordpress更换域名2017
  • 互联网站建设如何做网站内容构架图
  • html5网站后台建设一个网站的具体步骤
  • 公司网站建设费会计分录朋友圈软文
  • intitlt:山西大同网站建设百度在西安的公司叫什么
  • 想做一个网站怎么做的做关于什么的网站
  • 哪里有帮做微课的网站口碑好的盐城网站建设