- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
stm32iic硬件中断方式通用子函数
//h文件
#ifndef __iic_h__
#define __iic_h__
/* Includes ------------------------------------------------------------------*/
#include stm32f10x.h
/* Exported types ------------------------------------------------------------*/
typedef enum i2c_result
{
NO_ERR = 0,
TIMEOUT = 1,
BUS_BUSY = 2,
SEND_START_ERR = 3,
ADDR_MATCH_ERR = 4,
ADDR_HEADER_MATCH_ERR = 5,
DATA_TIMEOUT = 6,
WAIT_COMM = 7,
STOP_TIMEOUT = 8
}I2C_Result;
typedef enum i2c_state
{
COMM_DONE = 0, // done successfully
COMM_PRE = 1,
COMM_IN_PROCESS = 2,
CHECK_IN_PROCESS = 3,
COMM_EXIT = 4 // exit since failure
}I2C_STATE;
extern I2C_STATE i2c_comm_state;
extern vu8 MasterReceptionComplete;
extern vu8 MasterTransitionComplete;
extern vu8 WriteComplete;
extern vu8 SlaveReceptionComplete;
extern vu8 SlaveTransitionComplete;
void I2C_Comm_Init(I2C_TypeDef* I2Cx, u32 I2C_Speed, u16 I2C_Addr);
void I2C_Comm_MasterWrite(I2C_TypeDef* I2Cx, u16 slave_addr, u32 offset, u8* pBuffer, u32 length);
void I2C_Comm_SlaveRead(I2C_TypeDef* I2Cx, u8* pBuffer, u32 length);
void I2C_Comm_MasterRead(I2C_TypeDef* I2Cx, u16 slave_addr, u32 offset, u8* pBuffer, u32 length);
void I2C_Comm_SlaveWrite(I2C_TypeDef* I2Cx, u8* pBuffer, u32 length);
void i2c1_evt_isr(void);
void i2c1_err_isr(void);
void i2c2_evt_isr(void);
void i2c2_err_isr(void);
//c文件
#endif // __iic_h__
#include iic.h
/******* specified by user ************/
//#define I2C_REMAP
//#define SLAVE_10BIT_ADDRESS
/******* specify by user ************/
#define Transmitter 0x00
#define Receiver 0x01
#define FALSE 0
#define TRUE 1
static vu8 Direction = Transmitter;
static u16 SlaveADDR;
static u32 TxLength,RxLength;
static u32 DeviceOffset=0xffffffff;
static u8* pTxBuffer1;
static u8* pTxBuffer2;
static u8* pRxBuffer1;
static u8* pRxBuffer2;
static u8 check_begin = FALSE;
vu8 MasterReceptionComplete = 0;
vu8 MasterTransitionComplete = 0; // to indicat masters send process
vu8 SlaveReceptionComplete =0;
vu8 Sla
您可能关注的文档
- 2013年职称英语_全真模拟题_理工类_C级(第一套)_题目.doc
- 中国在桩基础分析中的最新进展(全英)Recent advances in the analysis of pile foundation.docx
- 2010年上外复试+经验谈--高翻+翻硕.doc
- 3GPP 目录.docx
- 全球各国电压、频率一览表.doc
- AutoCAD2000~AutoCAD2013下载.doc
- 毕业设计(论文)外文参考资料0805110411 孙怡臻.doc
- Android应用.doc
- 2005年10月自考英语冲刺模拟试卷及答案.doc
- PETER PAN 彼得·潘 英语读书笔记.doc
- 中国国家标准 GB/T 28182-2024额定电压52 kV及以下带串联间隙避雷器.pdf
- GB/T 28182-2024额定电压52 kV及以下带串联间隙避雷器.pdf
- 《GB/T 44045-2024石油、石化和天然气工业用转子泵》.pdf
- GB/T 15314-2024精密工程测量规范.pdf
- 中国国家标准 GB/T 15314-2024精密工程测量规范.pdf
- 《GB/T 15314-2024精密工程测量规范》.pdf
- GB/T 33475.2-2024信息技术 高效多媒体编码 第2部分:视频.pdf
- 中国国家标准 GB/T 33475.2-2024信息技术 高效多媒体编码 第2部分:视频.pdf
- 《GB/T 33475.2-2024信息技术 高效多媒体编码 第2部分:视频》.pdf
- GB/T 44045-2024石油、石化和天然气工业用转子泵.pdf
文档评论(0)