智能车制作

标题: 飞思卡尔 k60 iliac25驱动 [打印本页]

作者: 欲望~控♂    时间: 2014-8-29 21:27
标题: 飞思卡尔 k60 iliac25驱动
程序运行, 得到的DeviceCode为6783         求有经验的给点建议

  1. int main(void)
  2. {
  3.   DelayInit();
  4.   LCD_Init();
  5.   while(1);
  6. }
复制代码
  1. #include "ili9325.h"
  2. #include "gpio.h"
  3. uint16_t DeviceCode;         

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

  11. dat = GPIO_ReadPort(HW_GPIOA);  // DBH  
  12. dat = (dat&0xFF00) | ((val>>8)&0x00FF);
  13. GPIO_WritePort(HW_GPIOA, dat);       
  14. }
  15. void LCD_WR_DATA(uint16_t data)
  16. {  
  17.         LCD_RS_SET;
  18.         LCD_CS_CLR;
  19.         DataToIO(data);
  20.         LCD_WR_CLR;
  21.         LCD_WR_SET;
  22.         LCD_CS_SET;
  23. }        

  24. void LCD_WR_REG(uint16_t data)  
  25. {
  26.         LCD_RS_CLR;
  27.         LCD_CS_CLR;
  28.         DataToIO(data);
  29.         LCD_WR_CLR;
  30.         LCD_WR_SET;
  31.         LCD_CS_SET;
  32. }

  33. void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue)
  34. {       
  35.         LCD_WR_REG(LCD_Reg);  
  36.         LCD_WR_DATA(LCD_RegValue);                             
  37. }

  38. uint16_t LCD_ReadReg(uint16_t LCD_Reg)
  39. {                                                                                  
  40.         uint16_t t,i,datH,datL;
  41.         LCD_WR_REG(LCD_Reg);  
  42.         for(i=0;i<7;i++)
  43.         {
  44.           GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_IPU);
  45.         }
  46.         for(i=8;i<16;i++)
  47.         {
  48.           GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_IPU);
  49.         }
  50.         PTA->PDOR=0XFFFF;
  51.         PTB->PDOR=0XFFFF;
  52.        
  53.         LCD_RS_SET;
  54.         LCD_CS_CLR;
  55.         LCD_RD_CLR;
  56.         DelayUs(5);
  57.        
  58.         datH = PTA->PDIR;  /**< Port Data Input Register, offset: 0x10 */
  59.         datL = PTB->PDIR;  /**< Port Data Input Register, offset: 0x10 */
  60.        
  61.         LCD_CS_SET;
  62.         for(i=0;i<7;i++)
  63.         {
  64.                 GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_OPP);
  65.         }
  66.         for(i=8;i<16;i++)
  67.         {
  68.                 GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_OPP);
  69.         }
  70.         DataToIO(0XFFFF);
  71.         t = ((datH<<8)&0xFF00) | (datL&0x00FF);
  72.         return t;  
  73. }  

  74. void LCD_Init(void)
  75. {
  76.         uint8_t i;                                                                                   
  77.         for(i=4;i<10;i++)
  78.         {
  79.                 GPIO_QuickInit(HW_GPIOD,i,kGPIO_Mode_OPP);
  80.         }

  81.         LCD_CS_SET;
  82.         LCD_RD_SET;
  83.         LCD_WR_SET;
  84.         DelayMs(50); // delay 50 ms
  85.         LCD_WriteReg(0x0000,0x0001);
  86.         DelayMs(50); // delay 50 ms
  87.         LCD_RD_SET;
  88.         LCD_WR_SET;
  89.        
  90.         DeviceCode = LCD_ReadReg(0x0000);
  91.         DelayMs(20);

  92.         LCD_LED_SET;
  93. }
复制代码
  1. #include "ili9325.h"
  2. #include "gpio.h"
  3. uint16_t DeviceCode;         

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

  11. dat = GPIO_ReadPort(HW_GPIOA);  // DBH  
  12. dat = (dat&0xFF00) | ((val>>8)&0x00FF);
  13. GPIO_WritePort(HW_GPIOA, dat);       
  14. }
  15. void LCD_WR_DATA(uint16_t data)
  16. {  
  17.         LCD_RS_SET;
  18.         LCD_CS_CLR;
  19.         DataToIO(data);
  20.         LCD_WR_CLR;
  21.         LCD_WR_SET;
  22.         LCD_CS_SET;
  23. }        

  24. void LCD_WR_REG(uint16_t data)  
  25. {
  26.         LCD_RS_CLR;
  27.         LCD_CS_CLR;
  28.         DataToIO(data);
  29.         LCD_WR_CLR;
  30.         LCD_WR_SET;
  31.         LCD_CS_SET;
  32. }

  33. void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue)
  34. {       
  35.         LCD_WR_REG(LCD_Reg);  
  36.         LCD_WR_DATA(LCD_RegValue);                             
  37. }

  38. uint16_t LCD_ReadReg(uint16_t LCD_Reg)
  39. {                                                                                  
  40.         uint16_t t,i,datH,datL;
  41.         LCD_WR_REG(LCD_Reg);  
  42.         for(i=0;i<7;i++)
  43.         {
  44.           GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_IPU);
  45.         }
  46.         for(i=8;i<16;i++)
  47.         {
  48.           GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_IPU);
  49.         }
  50.         PTA->PDOR=0XFFFF;
  51.         PTB->PDOR=0XFFFF;
  52.        
  53.         LCD_RS_SET;
  54.         LCD_CS_CLR;
  55.         LCD_RD_CLR;
  56.         DelayUs(5);
  57.        
  58.         datH = PTA->PDIR;  /**< Port Data Input Register, offset: 0x10 */
  59.         datL = PTB->PDIR;  /**< Port Data Input Register, offset: 0x10 */
  60.        
  61.         LCD_CS_SET;
  62.         for(i=0;i<7;i++)
  63.         {
  64.                 GPIO_QuickInit(HW_GPIOB,i,kGPIO_Mode_OPP);
  65.         }
  66.         for(i=8;i<16;i++)
  67.         {
  68.                 GPIO_QuickInit(HW_GPIOA,i,kGPIO_Mode_OPP);
  69.         }
  70.         DataToIO(0XFFFF);
  71.         t = ((datH<<8)&0xFF00) | (datL&0x00FF);
  72.         return t;  
  73. }  

  74. void LCD_Init(void)
  75. {
  76.         uint8_t i;                                                                                   
  77.         for(i=4;i<10;i++)
  78.         {
  79.                 GPIO_QuickInit(HW_GPIOD,i,kGPIO_Mode_OPP);
  80.         }

  81.         LCD_CS_SET;
  82.         LCD_RD_SET;
  83.         LCD_WR_SET;
  84.         DelayMs(50); // delay 50 ms
  85.         LCD_WriteReg(0x0000,0x0001);
  86.         DelayMs(50); // delay 50 ms
  87.         LCD_RD_SET;
  88.         LCD_WR_SET;
  89.        
  90.         DeviceCode = LCD_ReadReg(0x0000);
  91.         DelayMs(20);

  92.         LCD_LED_SET;
  93. }
复制代码








欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2