STM32
直播中

杨叶

8年用户 168经验值
私信 关注
[问答]

tft问题谁来解答一下

各位好:
有个问题想请教下
现在在用tft,原子家的
程序用的库写的:
__inline void LCD_Write_Data(uint16_t data)      //写数据,内联函数{LCD_RS_SET();    //写数据LCD_CS_CLR();  //片选开启GPIO_Write(GPIOB,data);  //写入数据LCD_WR_CLR();  //写时序LCD_WR_SET();LCD_CS_SET();    //片选关闭 }
void LCD_Write_Comm(uint8_t comm)     //写命令 {LCD_RS_CLR();    //写命令LCD_CS_CLR();  //片选开启GPIO_Write(GPIOB,comm);  //写入数据LCD_WR_CLR();LCD_WR_SET();LCD_CS_SET();    //片选关闭 }
uint16_t LCD_Read_Reg(uint8_t add)         //读寄存器{    GPIO_InitTypeDef GPIO_InitStructure;uint16_t d;LCD_Write_Comm(add);  //写寄存器地址GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;      //上拉输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_Write(GPIOB,0xffff); //输出高电平LCD_RS_SET(); //数据LCD_CS_CLR();LCD_RD_CLR();d=GPIO_ReadInputData(GPIOB);LCD_RD_SET();LCD_CS_SET();GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);    return d; }
这么去读0x00:
printf("%xn",LCD_Read_Reg(0x00));
printf("%xn",LCD_Read_Reg(0x00));
printf("%xn",LCD_Read_Reg(0x00));
每次第一个会读出9325,但是第二个第三个都是0:
9325
0
0
而且如果我把地址改为别的,读出来的还是这样
是这三个驱动的问题吗

回帖(2)

蒋喜玲

2020-6-18 08:26:36
你这种做法,倒是真没测试过.
不过按理说每次读出的应该都是一样的才对.你试试寄存器版本的代码看看.
举报

曾顺

2020-6-18 08:44:00
原子哥,问题已解决
自己没注意,咱们板子用tft时要把jtag禁止
还有就是读0x00以外的寄存器要先将tft振荡器打开
谢谢了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分