stm32iic硬件中断方式通用子函数.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档