引用: 人中狼 发表于 2018-1-15 10:10
你的程序这部分看不出什么问题,另外向9341写数据不需要延时,只要把数据写入9341就可以了,不需要等待结果或向1602等需要查忙,所以如果你的程序里有延时,那么假设每一个字节一个延时,76800个延时的时间也够长了。
你应该查查其他部分的程序和硬件电路,例程的代码一般都没什么问题的,除了硬件连接有可能不一样,例程都 ...
引用: 人中狼 发表于 2018-1-15 12:42
从你的描述来看,应该还是代码的问题,比如i的初始值是多少,有没有被改变。
另外还是那个问题,对于9341,单片机向9341写入数据是不需要加延时操作的,我用51和STM32F103操作9341,都不需要加延时的,也是参考例程修改使用的。 ...
引用: 人中狼 发表于 2018-1-15 13:19
延时不止一两个指令周期,C语言的while(i--)至少有一个减法指令和一个比较指令,就算是一个指令周期,按51算,12兆晶振,12分频,一个指令周期1us,刷屏76800个点,就是76800us,即76毫秒,这还是按一个指令周期算的。
查查代码吧,看看跟例程的区别再哪 ...
引用: 人中狼 发表于 2018-1-15 13:19
延时不止一两个指令周期,C语言的while(i--)至少有一个减法指令和一个比较指令,就算是一个指令周期,按51算,12兆晶振,12分频,一个指令周期1us,刷屏76800个点,就是76800us,即76毫秒,这还是按一个指令周期算的。
查查代码吧,看看跟例程的区别再哪 ...
引用: 人中狼 发表于 2018-1-15 18:39
找个32的例程对比看看吧,应该是程序问题,可能是引脚设置或时序的问题
[url=]人中狼 发表于 2018-1-30 19:21[/url]
彩屏的8位和16位操作是不一样的,如果单片机使用16位端口连接彩屏,数据是16位一次写入的,如果是使用8位端口连接彩屏,则是16位数据分两次写入彩屏,这需要确定彩屏使用的16位还是8位接口,然后单片机采用相应的控制方式进行控制 ...
引用: 人中狼 发表于 2018-1-30 20:09
不知道你的程序改了没有,不过下面的代码应该是8位的,16位的接口,数据不需要写两次
LCD_WR_CMD(LCD_CMD_COLADDR);//设置列地址
LCD_WR_DAT(0x00); //列开始地址0(0x0000),先写高8位
引用: 人中狼 发表于 2018-1-30 22:12
不好意思,那部分我没注意看,9341的基础控制方面我是直接从例程修改过来的,我的写命令和写数据部分直接贴给你,这部分代码里我的都没有延时,所以你可能需要查一下端口操作部分的程序,16位端口我用的是C端口
void TFT_9341_Write_data(u16 TFT_9341_DATA)
{
更多回帖