stm32f103VE利用iic如和对ili9341写命令、写数据、读数据
时间: 2023-06-20 14:05:17 浏览: 194
STM32f103VE通过IIC读写24C02存储器
首先,需要在STM32F103VE上配置I2C通信,包括GPIO引脚、时钟、I2C地址等。接着,通过I2C总线与ILI9341进行通信。
写命令和写数据的流程大致相同,可以使用以下函数:
```c
void i2c_write(uint8_t dev_addr, uint8_t reg_addr, uint8_t data)
{
HAL_I2C_Mem_Write(&hi2c1, dev_addr, reg_addr, 1, &data, 1, 1000);
}
```
其中,`dev_addr`为ILI9341的I2C地址,`reg_addr`为命令或数据的寄存器地址,`data`为要写入的数据。使用HAL库函数`HAL_I2C_Mem_Write`进行写操作。
读数据的流程略有不同,可以使用以下函数:
```c
uint8_t i2c_read(uint8_t dev_addr, uint8_t reg_addr)
{
uint8_t data;
HAL_I2C_Mem_Read(&hi2c1, dev_addr, reg_addr, 1, &data, 1, 1000);
return data;
}
```
其中,`dev_addr`和`reg_addr`的含义与写操作相同,`data`为读取到的数据。使用HAL库函数`HAL_I2C_Mem_Read`进行读操作。
需要注意的是,ILI9341的I2C通信速率较慢,需要设置适当的延时。此外,ILI9341的寄存器地址和命令码需要查阅数据手册获取。
阅读全文