I2C的应用与编程.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2C的应用与编程

Cortex-M3 I2C的应用与编程 北京精仪达盛科技有限公司 Stellaris系列ARM的I2C模块在作为主机或从机时都可以产生中断。I2C主机在发送或接 收操作完成(或由于错误中止)时产生中断,I2C从机在主机已向其发送数据或发出请求时产生中断。 1.1 常用的I2C库函数 1)I2C主机模块初始化 void I2CMasterInitExpClk(unsigned long abase, unsigned long ulI2CClk, Boolean beast) ulBase:I2C主机模块的基址,取值下列值之一 I2C0_MASTER_BASE // I2C0主机模块的基址 举例: I2CMasterInitExpClk(I2C0_MASTER_BASE, SysCtlClockGet(), false); 该函数配置I2C0模块,时钟为系统时钟,false表示以100kbps标准位速率传输数据 2)设置I2C主机将要放到总线上的从机地址 void I2CMasterSlaveAddrSet(unsigned long abase, unsigned char ucSlaveAddr, Boolean bReceive) 参数: ulBase:I2C主机模块的基址 ucSlaveAddr :7位从机地址(这是纯地址,不含读/写控制位) bReceive:取值false表示主机将要写数据到从机,取值true表示主机将要从从机读取数据 注:本函数仅仅是设置将要发送到总线上的从机地址,而并不会真正在总线上产生任何动作 举例: I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, 0x50 | (ulOffset 8), false); 设置I2C主机将要放到总线上的地址,false表示主机要写数据到从机 3)从主机发送一个字节 void I2CMasterDataPut(unsigned long ulBase, unsigned char ucData) ulBase:I2C主机模块的基址 ucData:要发送的数据 注:本函数实际上并不会真正发送数据到总线上,而是将待发送的数据存放在一个数据寄存器里 4)接收一个已经发送到主机的字节 unsigned long I2CMasterDataGet(unsigned long ulBase) 参数: ulBase:I2C主机模块的基址 5)控制主机模块在总线上的动作 void I2CMasterControl(unsigned long ulBase, unsigned long ulCmd) 参数: ulBase:I2C主机模块的基址 ulCmd:向主机发出的命令,取下列值之一 ulCmd:向主机发出的命令,取下列值之一 I2C_MASTER_CMD_SINGLE_SEND // 单次发送 I2C_MASTER_CMD_SINGLE_RECEIVE // 单次接收 I2C_MASTER_CMD_BURST_SEND_START // 突发发送起始 I2C_MASTER_CMD_BURST_SEND_CONT // 突发发送继续 I2C_MASTER_CMD_BURST_SEND_FINISH // 突发发送完成 I2C_MASTER_CMD_BURST_SEND_ERROR_STOP // 突发发送遇错误停止 I2C_MASTER_CMD_BURST_RECEIVE_START // 突发接收起始 I2C_MASTER_CMD_BURST_RECEIVE_CONT // 突发接收继续 I2C_MASTER_CMD_BURST_RECEIVE_FINISH // 突发接收完成 I2C_MASTER_CMD_BURST_RECEIVE_ERROR_STOP // 突发接收遇错误停止 举例 I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_SEND_START); 该函数说明I2C0Master在总线上的动作为突发发送起始 (2) 调用API函数读写I2C器件的的操作流程 1、初始化系统时钟; 2、使能I2C外设; 3、使能I2C所在的GPIO端口与所在管脚; 4、将所用到的I2C管脚配置为I2C功能; 5、要程序中用到中断的话,使能相应的中断; 6、I2C主机模块初始化; 7、在中断函数里配置I2C主机模块在总线上的动作,以及数据的发送与接收。 * * * * 芮德华 本讲主要内容: (1)常用的I2C库函数 (2) 调用API函数读写I

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档