打印
[技术问题解答]

飞思卡尔 K60 ILI9325驱动(已解决)

[复制链接]
1506|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
assange|  楼主 | 2014-8-29 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-9-15 11:51 编辑

程序运行, 得到的DeviceCode为6783         求有经验的给点建议

int main(void)
{
  DelayInit();
  LCD_Init();
  while(1);
}
#include "ili9325.h"
#include "gpio.h"
uint16_t DeviceCode;         

//PTB0~8 DB0~8 **** PTA8~15 DB8~15
void DataToIO(uint16_t val)
{
uint16_t dat=0;
dat = GPIO_ReadPort(HW_GPIOB);  // DBL
dat = (dat&0xFF00) | (val&0x00FF);
GPIO_WritePort(HW_GPIOB, dat);

dat = GPIO_ReadPort(HW_GPIOA);  // DBH  
dat = (dat&0xFF00) | ((val>>8)&0x00FF);
GPIO_WritePort(HW_GPIOA, dat);        
}
void LCD_WR_DATA(uint16_t data)
{  
        LCD_RS_SET;
        LCD_CS_CLR;
        DataToIO(data);
        LCD_WR_CLR;
        LCD_WR_SET;
        LCD_CS_SET;
}         

void LCD_WR_REG(uint16_t data)  
{
        LCD_RS_CLR;
        LCD_CS_CLR;
        DataToIO(data);
        LCD_WR_CLR;
        LCD_WR_SET;
        LCD_CS_SET;
}

void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue)
{        
        LCD_WR_REG(LCD_Reg);  
        LCD_WR_DATA(LCD_RegValue);                             
}

uint16_t LCD_ReadReg(uint16_t LCD_Reg)
{                                                                                   
        uint16_t t,i,datH,datL;
        LCD_WR_REG(LCD_Reg);  
        for(i=0;i<7;i++)
        {
          GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_IPU);
        }
        for(i=8;i<16;i++)
        {
          GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_IPU);
        }
        PTA->PDOR=0XFFFF;
        PTB->PDOR=0XFFFF;
        
        LCD_RS_SET;
        LCD_CS_CLR;
        LCD_RD_CLR;
        DelayUs(5);
        
        datH = PTA->PDIR;  /**< Port Data Input Register, offset: 0x10 */
        datL = PTB->PDIR;  /**< Port Data Input Register, offset: 0x10 */
        
        LCD_CS_SET;
        for(i=0;i<7;i++)
        {
                GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_OPP);
        }
        for(i=8;i<16;i++)
        {
                GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_OPP);
        }
        DataToIO(0XFFFF);
        t = ((datH<<8)&0xFF00) | (datL&0x00FF);
        return t;  
}  

void LCD_Init(void)
{
        uint8_t i;                                                                                   
        for(i=4;i<10;i++)
        {
                GPIO_QuickInit(HW_GPIOD,i,kGPIO_Mode_OPP);
        }

        LCD_CS_SET;
        LCD_RD_SET;
        LCD_WR_SET;
        DelayMs(50); // delay 50 ms
        LCD_WriteReg(0x0000,0x0001);
        DelayMs(50); // delay 50 ms
        LCD_RD_SET;
        LCD_WR_SET;
        
        DeviceCode = LCD_ReadReg(0x0000);
        DelayMs(20);

        LCD_LED_SET;
}

#define        LCD_LED_SET  PDout(9)=1
#define        LCD_LED_CLR         PDout(9)=0

#define        LCD_CS_SET  PDout(8)=1   
#define        LCD_RS_SET        PDout(5)=1     
#define        LCD_WR_SET        PDout(6)=1   
#define        LCD_RD_SET        PDout(7)=1     
#define        LCD_RST_SET        PDout(4)=1   

#define        LCD_CS_CLR  PDout(8)=0     
#define        LCD_RS_CLR        PDout(5)=0      
#define        LCD_WR_CLR        PDout(6)=0     
#define        LCD_RD_CLR        PDout(7)=0
#define        LCD_RST_CLR        PDout(4)=0

void DataToIO(uint16_t val);
void LCD_Init(void);
void LCD_WR_DATA(uint16_t data);
void LCD_WR_REG(uint16_t data);
void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue);
uint16_t LCD_ReadReg(uint16_t LCD_Reg);




相关帖子

沙发
FSL_TICS_Robin| | 2014-9-1 11:07 | 只看该作者
楼主你好
请问你现在芯片与ILI9325之前通信波形有用逻辑分析仪抓取是否正确呢?

使用特权

评论回复
板凳
assange|  楼主 | 2014-9-1 17:16 | 只看该作者
FSL_TICS_Robin 发表于 2014-9-1 11:07
楼主你好
请问你现在芯片与ILI9325之前通信波形有用逻辑分析仪抓取是否正确呢?

我只是个学生,没有逻辑分析仪这样高级的装备:(

使用特权

评论回复
地板
jd972594| | 2014-9-1 17:33 | 只看该作者
;P用过30+元逻辑分析仪的飘过,淘宝上到处都是。
调试SPI、IIC这种总线协议必须哒

使用特权

评论回复
5
FSL_TICS_Robin| | 2014-9-2 09:18 | 只看该作者
那请问你的SPI程序之前有正常通信过吗?

使用特权

评论回复
6
assange|  楼主 | 2014-9-2 15:45 | 只看该作者
jd972594 发表于 2014-9-1 17:33
用过30+元逻辑分析仪的飘过,淘宝上到处都是。
调试SPI、IIC这种总线协议必须哒 ...

还有这么便宜的....

使用特权

评论回复
7
assange|  楼主 | 2014-9-2 15:46 | 只看该作者
FSL_TICS_Robin 发表于 2014-9-2 09:18
那请问你的SPI程序之前有正常通信过吗?

这个我貌似是虚拟的...没有用硬件上的

使用特权

评论回复
8
FSL_TICS_Robin| | 2014-9-2 16:02 | 只看该作者
那学校有示波器不? 调试时看一下波形是否满足你要的时序呢

使用特权

评论回复
9
assange|  楼主 | 2014-9-2 17:53 | 只看该作者
FSL_TICS_Robin 发表于 2014-9-2 16:02
那学校有示波器不? 调试时看一下波形是否满足你要的时序呢

哦?我去问问,这些东西貌似不常见,示波器比较多;P

使用特权

评论回复
10
jd972594| | 2014-9-4 09:03 | 只看该作者
assange 发表于 2014-9-2 15:45
还有这么便宜的....

功能稍微弱了一点,但是对于小项目而言足够了。
以前i2c我也用示波器看波形,芯片调试收发一次I2c数据看一下波形对就ok啦。
不对就再去找到底哪的问题。

使用特权

评论回复
11
assange|  楼主 | 2014-9-4 09:17 | 只看该作者
jd972594 发表于 2014-9-4 09:03
功能稍微弱了一点,但是对于小项目而言足够了。
以前i2c我也用示波器看波形,芯片调试收发一次I2c数据看 ...

嗯,好哒,谢谢,考虑入手一个看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

38

帖子

0

粉丝