- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
10.3.3I2C中断方式数据传输一个I2C接口有两个中断号,一个用于事件中断,另一个用于错误中断。HAL_I2C_EV_IRQHandler()是事件中断ISR中调用的通用处理函数,HAL_I2C_ER_IRQHandler()是错误中断ISR中调用的通用处理函数。I2C接口的中断方式数据传输函数,以及各个传输函数关联的回调函数如表10-2所示。函数名函数功能描述关联的回调函数HAL_I2C_Master_Transmit_IT()主设备向某个地址的从设备发送一定长度的数据HAL_I2C_MasterTxCpltCallback()HAL_I2C_Master_Receive_IT()主设备向某个地址的从设备发送一定长度的数据HAL_I2C_MasterTxCpltCallback()HAL_I2C_Master_Abort_IT()主设备主动中止中断传输过程HAL_I2C_AbortCpltCallback()HAL_I2C_Slave_Transmit_IT()作为从设备发送一定长度的数据HAL_I2C_SlaveTxCpltCallback()HAL_I2C_Slave_Receive_IT()作为从设备接收一定长度的数据HAL_I2C_SlaveRxCpltCallback()HAL_I2C_Mem_Write_IT()向某个从设备的指定存储地址开始写入一定长度的数据HAL_I2C_Mem_Write_IT()HAL_I2C_Mem_Read_IT()从某个从设备的指定存储地址开始读取一定长度的数据HAL_I2C_MemRxCpltCallback()所有中断方式传输函数中断方式传输过程出现错误HAL_I2C_ErrorCallback()表10-2I2C接口的中断方式数据传输函数以及关联的回调函数10.3.4I2C的DMA方式数据传输一个I2C接口有I2C_TX和I2C_RX两个DMA请求,可以为DMA请求配置DMA流,从而进行DMA方式数据传输。I2C接口的DMA方式数据传输函数,以及DMA流发生传输完成事件(DMA_IT_TC)中断时的回调函数如表10-3所示。函数名函数功能描述关联的回调函数HAL_I2C_Master_Transmit_DMA()向某个地址的从设备发送一定长度的数据HAL_I2C_MIasterTxCpltCallback()HAL_I2C_Master_Receive_DMA()从某个地址的从设备接收一定长度的数据HAL_I2C_MasterRxCpltCallback()HAL_I2C_Slave_Transmit_DMA()作为从设备发送一定长度的数据HAL_I2C_SlaveTxCpltCallback()HAL_I2C_Slave_Receive_DMA()作为从设备接收一定长度的数据HAL_I2C_SlaveRxCpltCallback()HAL_I2C_Mem_Write_DMA()从某个从设备的指定存储地址开始写入一定长度的数据HAL_I2C_MemTxCpltCallback()HAL_I2C_Mem_Read_IT()从某个从设备的指定存储地址开始读取一定长度的数据HAL_I2C_MemRxCpltCallback()表10-3I2C接口的DMA方式数据传输函数以及关联的回调函数EEPROM是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载之。EEPOM芯片最常用的通信方式就是I2C协议,本节以EEPROM的读写实验为例,讲解STM32的I2C使用方法。实例中STM32的I2C外设采用主模式,分别用作主发送器和主接收器,通过查询事件的方式来确保正常通信。10.4.1STM32的I2C配置虽然不同器件实现的功能不同,但是只要遵守I2C协议,其通信方式都是一样的,配置流程也基本相同。对于STM32,首先要对I2C进行配置,使其能够正常工作,再结合不同器件的驱动程序,完成STM32与不同器件的数据传输。10.4采用STM32Cube和HAL库的I2C应用实例10.4.2STM32I2C与EEPROM存储器接口的硬件设计STM32开发板采用AT24C02串行EEPROM,AT24C02的SCL及SDA引脚连接到了STM32对应的I2C引脚中,结合上拉电阻,构成了I2C通信总线,如图10-8所示。EEPROM芯片的设备地址一共有7位,其中高4位固定为:1010b,低3位则由A0、A1、A2信号线的电平决定。在本实例中,编写一
原创力文档


文档评论(0)