esp-who/components/lcd/include/spi_lcd.h

63 lines
2.2 KiB
C

// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef _IOT_SPI_LCD_H_
#define _IOT_SPI_LCD_H_
#include "driver/spi_master.h"
#include "iot_lcd.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @brief Initialize the LCD by putting some data in the graphics registers
*
* @param pin_conf Pointer to the struct with mandatory pins required for the LCD
* @param spi_wr_dev Pointer to the SPI handler for sending the data
* @return lcd id
*/
uint32_t lcd_init(lcd_conf_t* lcd_conf, spi_device_handle_t *spi_wr_dev, lcd_dc_t *dc, int dma_chan);
/*Used by adafruit functions to send data*/
void lcd_send_uint16_r(spi_device_handle_t spi, const uint16_t data, int32_t repeats, lcd_dc_t *dc);
/*Send a command to the ILI9341. Uses spi_device_transmit,
which waits until the transfer is complete */
void lcd_cmd(spi_device_handle_t spi, const uint8_t cmd, lcd_dc_t *dc);
/*Send data to the ILI9341. Uses spi_device_transmit,
which waits until the transfer is complete */
void lcd_data(spi_device_handle_t spi, const uint8_t *data, int len, lcd_dc_t *dc);
/** @brief Read LCD IDs using SPI, not working yet
* The 1st parameter is dummy data.
* The 2nd parameter (ID1 [7:0]): LCD module's manufacturer ID.
* The 3rd parameter (ID2 [7:0]): LCD module/driver version ID.
* The 4th parameter (ID3 [7:0]): LCD module/driver ID.
* @param spi spi handler
* @param lcd_id pointer to struct for reading IDs
*/
void lcd_read_id(spi_device_handle_t spi, lcd_id_t *lcd_id, lcd_dc_t *dc);
/**
* @brief get LCD ID
*/
uint32_t lcd_get_id(spi_device_handle_t spi, lcd_dc_t *dc);
#ifdef __cplusplus
}
#endif
#endif