⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ts_i2c.c

📁 ARM_CORTEX-M3应用实例开发详解光盘
💻 C
字号:
/******************************************************************************/
/* TS_I2C.c: Touch-Screen STMPE811 controller routines                        */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2005-2009 Keil Software. All rights reserved.                */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/

#include "I2C.h"


/************************ Local auxiliary functions ***************************/

/************************ Exported functions **********************************/

/*******************************************************************************
* Initialize Touch-screen controller                                           *
*   Parameter:                                                                 *
*   Return:                                                                    *
*******************************************************************************/

void TS_Init (void) {

  I2C_Init ();
  I2C_Start();
  I2C_Addr (0x82 | 0);
  I2C_Write(0x40);                      /* TSC_CTRL register                  */
  I2C_Write(3);                         /* X, Y only mode, enable             */
  I2C_Stop ();
}


/*******************************************************************************
* Write value to Touch-screen controller register                              *
*   Parameter:    reg:    register address                                     *
*                 num:    number of bytes to be written                        *
*                 val:    value to be written                                  *
*   Return:                                                                    *
*******************************************************************************/

void TS_Write (unsigned char reg, unsigned char num, unsigned int val) {

  I2C_Start();
  I2C_Addr (0x82 | 0);
  I2C_Write(reg);                       /* Register to be written             */
  while (num--) {
    I2C_Write(val & 0xFF);
    val >>= 8;
  }
  I2C_Stop ();
}


/*******************************************************************************
* Read data from Touch-screen controller register                              *
*   Parameter:    reg:    register address                                     *
*                 num:    number of bytes to be read                           *
*   Return:               read value                                           *
*******************************************************************************/

unsigned int TS_Read (unsigned char reg, unsigned char num) {
  unsigned int res = 0;

  I2C_Start();
  I2C_Addr (0x82 | 0);
  I2C_Write(reg);                       /* Register to be read                */
  I2C_Start();
  I2C_Addr (0x82 | 1);
  while (num--) {
    res <<= 8;
    res  |= I2C_Read ((num >= 1));
  }
  I2C_Stop ();

  return(res);
}

/******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -