找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2607|回复: 3
打印 上一主题 下一主题
收起左侧

STM32F103 开发板GT9147初始化函数的一点疑问

[复制链接]
跳转到指定楼层
楼主
ID:489652 发表于 2019-10-24 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
4黑币
u8 GT9147_Init(void)
{
        u8 temp[5];  
        GPIO_InitTypeDef  GPIO_InitStructure;        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);         //使能PF端口时钟

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                                 // PF11端口配置,PEN引脚
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOF, &GPIO_InitStructure);//PF11推挽输出
        GPIO_SetBits(GPIOF,GPIO_Pin_1);//上拉
               
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                 // PB2端口配置
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  //上拉输入
        GPIO_Init(GPIOF, &GPIO_InitStructure);//PF10上拉输入
        GPIO_SetBits(GPIOF,GPIO_Pin_10);//上拉               
        

        CT_IIC_Init();              //初始化电容屏的I2C总线  
        GT_RST=0;                                //复位
        delay_ms(10);
        GT_RST=1;                                //释放复位
        delay_ms(10);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                 // PB2端口配置
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;                  //下拉输入             问题1
        GPIO_Init(GPIOF, &GPIO_InitStructure);//PF10下拉输入
        GPIO_ResetBits(GPIOF,GPIO_Pin_10);//下拉        
        
        
        delay_ms(100);  
        GT9147_RD_Reg(GT_PID_REG,temp,4);        //读取产品ID
        temp[4]=0;
        printf("CTP ID:%s\r\n",temp);                //打印ID
        if(strcmp((char*)temp,"9147")==0)        //ID==9147
        {
                temp[0]=0X02;                        
                GT9147_WR_Reg(GT_CTRL_REG,temp,1);//软复位GT9147
                GT9147_RD_Reg(GT_CFGS_REG,temp,1);//读取GT_CFGS_REG寄存器
                if(temp[0]<0X60)//默认版本比较低,需要更新flash配置       问题2
                {
                        printf("Default Ver:%d\r\n",temp[0]);
                        GT9147_Send_Cfg(1);//更新并保存配置
                }
                delay_ms(10);
                temp[0]=0X00;         
                GT9147_WR_Reg(GT_CTRL_REG,temp,1);        //结束复位           
                return 0;
        }
        return 1;
}
问题1 INT先上拉再下拉输入,这在干嘛
问题2 更新配置的条件是什么,这行看不懂

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:486894 发表于 2020-1-3 00:03 来自手机 | 只看该作者
你可以看一下《GT9147编程指南》这个pdf,对你的疑问有帮助
回复

使用道具 举报

板凳
ID:489652 发表于 2020-1-18 11:13 | 只看该作者
看了,上面也没说上电的时候要软复位
回复

使用道具 举报

地板
ID:389856 发表于 2020-1-20 11:11 | 只看该作者
temp[0]是对应的默认flash版本号,9147的默认flash版本号就是0x02,没有达到配置要求,所以要更新。GPIO先上拉应该是IIC总线初始化要一个高电平,再下拉进入正常模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表