本文主要是介绍IIC_Recv如何在IIC静默模式下读取IIC总线数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//IIC静默模式介绍:做电容式触摸屏的原车屏升级时,需要全程读取IIC的触摸数据,且不能影响IIC总线的数据,如:不能主动查询IIC、不能发送数据、不能发送ACK信号,不能进行地址过滤、不能响应查询信号等。//IIC静默模式实现难度比较高,需要实时同步IIC_SCL信号,识别IIC_SDA的关键信号start、stop、ack、nack、data域,需要比较精准的延时函数及健壮的代码。
//以下提供的源码即可实现IIC静默模式及IIC主模式读取数据,并转发到串口。
/****************************Copyright (c)*********************************************
**--------------文件信息--------------------------------------------------------------
** 文 件 名: IIC_Recv.c
** 创 建 人: WEN (wenshijian4@163.com,QQ214490357)
** 创建日期: 2016年2月16日
** 描 述: IIC靜默模式下,接收所有IIC數據,并轉發到串口
**---------- 版本信息------------------------------------------------------------------
** 版 本: V2.92
** 说 明: 支持8MHZ以上的系統時鐘,爲了準全讀取IIC,建議設置爲32MHZ;需要硬件SCL,SDA,INT
**-------------------------------------------------------------------------------------
**************************************************************************************/
//#ifndef u8
//#define u8 unsigned char
//#endif
/****************************************************************************************
//請根據以下4個步驟,在程序對應位置修改IO口的配置以及中斷!!
//1.在頭文件中,定義SCL,SDA,INT
#define PA4_SDA GPIO_Pin_4
#define PA5_INT GPIO_Pin_5
#define PA6_SCL GPIO_Pin_6
//---以下三個宏定義需要根據不同的硬件來修改,但是名字不能修改
#define Read_SDA GPIO_ReadInputDataBit(GPIOA, PA4_SDA)
#define Read_INT GPIO_ReadInputDataBit(GPIOA, PA5_INT)
#define Read_SCL GPIO_ReadInputDataBit(GPIOA, PA6_SCL)
//---注意:Read_SDA、Read_INT、Read_SCL爲關鍵字,不能改變
这篇关于IIC_Recv如何在IIC静默模式下读取IIC总线数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!