- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 2013合肥二模文科数学.doc
- 2013年山东莱芜中考化学试卷.doc
- 2013辽宁省鞍山市初中毕业年级第一次质量调查物理部分试卷及答案.docx
- 2014届新课标高中总复习(第1轮)第4章 非金属及其化合物第13讲 氮和氮的化合物.doc
- 2013高考数学必考点之三角函数——解答题3.doc
- 2014春夏纽约婚纱周色彩与细节分析.docx
- 2013汕头历史中考复习提纲资料(打印).doc
- 2013年鲁甸二中初中毕业生升学考试物理试卷.doc
- 2013山东高考理综.doc
- 2014届高考物理一轮复习讲义——第二章 相互作用.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)