IIC_WriteCmd
时间: 2024-06-19 09:03:13 浏览: 7
IIC_WriteCmd是一种IIC(Inter-Integrated Circuit)通信协议的函数,用于向设备发送控制命令。在使用IIC协议时,首先要发送控制命令,然后再发送相应的数据。IIC_WriteCmd函数的作用就是向设备发送控制命令,以便后续的数据传输能够正确执行。该函数通常包含以下参数:
- DevAddr:设备地址;
- Cmd:控制命令;
- CmdLen:控制命令长度。
在实际使用中,我们可以通过调用该函数来实现IIC通信,并按照协议要求正确地发送控制命令和数据。需要注意的是,在使用IIC通信时,需要根据具体的设备协议来编写控制命令和数据传输部分的代码。
相关问题
IIC_WriteCmd(0x90,0xaa)
IIC_WriteCmd(0x90, 0xaa)是一种IIC总线通信命令,它的作用是向设备发送指令字0xaa。其中0x90是设备地址,0xaa是指令字。IIC(Inter-Integrated Circuit)总线是一种串行通信总线,常用于连接微处理器和外围设备,具有双向传输数据和控制信号的能力。在IIC总线上,每个设备都有一个独特的7位地址,用于确定与之通信的设备。IIC_WriteCmd函数可以用于向指定设备发送命令字,以实现对设备的控制和操作。
stm32通过iic驱动1602显示字符的程序怎么写
你好,以下是一份基于STM32通过IIC驱动1602显示字符的程序:
```
#include "stm32f10x.h"
#define SCL GPIO_Pin_8
#define SDA GPIO_Pin_9
#define SCL_H GPIO_SetBits(GPIOB,SCL)
#define SCL_L GPIO_ResetBits(GPIOB,SCL)
#define SDA_H GPIO_SetBits(GPIOB,SDA)
#define SDA_L GPIO_ResetBits(GPIOB,SDA)
void Delay_IIC()
{
Delay_us(1);
}
void Delay_us(u32 cnt)
{
u32 i=8*cnt;
while(i--)
{
__nop();
}
}
void IIC_Start()
{
SDA_H;
SCL_H;
Delay_IIC();
SDA_L;
Delay_IIC();
SCL_L;
Delay_IIC();
}
void IIC_Stop()
{
SDA_L;
SCL_H;
Delay_IIC();
SDA_H;
Delay_IIC();
}
u8 IIC_SendByte(u8 DataByte)
{
u8 i;
for (i=0; i<8; i++)
{
if (DataByte & 0x80)
{
SDA_H;
}
else
{
SDA_L;
}
DataByte <<= 1;
SCL_H;
Delay_IIC();
SCL_L;
Delay_IIC();
}
SDA_H;
SCL_H;
Delay_IIC();
if(GPIO_ReadInputDataBit(GPIOB,SDA)==SET) return 0;
else return 1;
}
void IIC_WriteCmd(u8 cmd)
{
IIC_Start();
IIC_SendByte(0x78); //写地址
if(!IIC_SendByte(0x00)) //写数据模式
{
IIC_Stop();
return;
}
IIC_SendByte(cmd); //写指令
IIC_Stop();
}
void IIC_WriteData(u8 Data)
{
IIC_Start();
IIC_SendByte(0x78); //写地址
if(!IIC_SendByte(0x40)) //写数据模式
{
IIC_Stop();
return;
}
IIC_SendByte(Data); //写数据
IIC_Stop();
}
void LCD_Init()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = SCL | SDA;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
Delay_us(50000);
IIC_WriteCmd(0x38); //8位总线,2线显示,5x8点阵
IIC_WriteCmd(0x08); //显示关闭
IIC_WriteCmd(0x01); //清屏
Delay_us(2000);
IIC_WriteCmd(0x06); //写入字符后地址+1
IIC_WriteCmd(0x0c); //显示开并闪烁关闭
}
void LCD_ShowChar(u8 X,u8 Y,u8 Data)
{
u8 HS,LS;
HS=Data>>4;
LS=Data<<4; LS>>4;
IIC_WriteCmd(0x80|X); //设定Y行X列
IIC_WriteData(HS);
IIC_WriteData(LS);
}
int main(void)
{
LCD_Init();
LCD_ShowChar(0,0,'H');
LCD_ShowChar(1,0,'e');
LCD_ShowChar(2,0,'l');
LCD_ShowChar(3,0,'l');
LCD_ShowChar(4,0,'o');
while(1);
}
```
注意:本程序仅供参考,请根据自己的需求进行修改和调试。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)