沁恒CH571软件IIC

之前做的,今天在博客上发一下,效果:

CH571蓝牙接收,即刻显示内容

因为没怎么用这个芯片,所以配置还没有完全搞清楚,就先尝试的软件模拟IIC,毕竟只要有两个GPIO就能用。

    GPIOA_SetBits(GPIO_Pin_13);
    GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
    GPIOA_SetBits(GPIO_Pin_14);
    GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);

我用的是P13和14

下面是IIC的实现函数,我是直接改的其他程序的,忘了是哪copy来的了,需要修改的可能就是用不同屏幕或者其他iic设备需要改一下地址。

void delay(unsigned int t){
	return;
//	while(t--){
//		for(int k=6;k>0;k--)
//			__nop();
//	}
}

void scl(uint8_t n){
	if(n==1)
	GPIOA_SetBits(GPIO_Pin_13);
	else
		GPIOA_ResetBits(GPIO_Pin_13);
}
void sda(uint8_t n){
	if(n==1)
	GPIOA_SetBits(GPIO_Pin_14);
	else
		GPIOA_ResetBits(GPIO_Pin_14);
}
void sda_in(){
	GPIOA_ModeCfg(GPIO_Pin_14,GPIO_ModeIN_PU);
}
void sda_out(){
	GPIOA_ModeCfg(GPIO_Pin_14,GPIO_ModeOut_PP_5mA);
}

u8 IIC_Wait_Ack0(void)
{
	delay(1);

	scl(1);
	delay(1);
	scl(0);
	delay(1);

}

//产生IIC起始信号
void IIC_Start0(void)
{

	scl(1);
	sda(1);

	delay(1);//0.7*6*1
	sda(0);
	delay(1);
	scl(0);
	delay(1);

}


//产生IIC停止信号
void IIC_Stop0(void)
{
	sda(0);
	delay(1);
	scl(1);
	delay(1);
	sda(1);
	delay(1);



}
void IIC_Send_Byte(u8 txd)
{
    u8 t;
    delay(1);
    for(t=0;t<8;t++)
    {
    	scl(0);
    	delay(1);
		if((txd&0x80)>>7)
			sda(1);
		else
			sda(0);
		txd<<=1;
		delay(1);
		scl(1);
		delay(1);

    }
    scl(0);
    delay(1);
}

void Write_IIC_Data(unsigned char IIC_Data)
{

	IIC_Start0();
	IIC_Send_Byte(0x78);//地址根据自己使用的设备修改
	IIC_Wait_Ack0();
	IIC_Send_Byte(0x40);//
	IIC_Wait_Ack0();
	IIC_Send_Byte(IIC_Data);
	IIC_Wait_Ack0();
	IIC_Stop0();
}
void Write_IIC_Command(unsigned char IIC_Command)
{

	IIC_Start0();
	IIC_Send_Byte(0x78);
	IIC_Wait_Ack0();
	IIC_Send_Byte(0x00);
	IIC_Wait_Ack0();
	IIC_Send_Byte(IIC_Command);
	IIC_Wait_Ack0();
	IIC_Stop0();
}

完整的工程代码:opencaneve: 开源STM32HAL ESP8266 ESP32 python Android Windows把我学习到的以及找到的可以用的代码分享出来python记录打卡信息 ESP32蓝牙鼠标 开源windows串口助手 - Gitee.com

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山间朝暮-CanEve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值