一个寄存器变化引起的变化



0?wx_fmt=gif

昨天下载了最新的飞思卡尔基于Cortex M4核的kinetis kv4xMCU数据参考手册,发现跟之前用的对于I2C模块一个寄存器的描述有变动,正好最近有使用过这个模块,所以非常敏感的仔细阅读了变化的这部分,总结一下分享给各位猿友,希望对大家有帮助

主要变化

新的参考手册主要增加了启动信号的中断,以前的版本没有启动信号中断的检测,其实主要是寄存器I2C_FLT的变化。通过对比可以发现,在新的参考手册中增加了启动中断使能和启动信号中断检测标志,因为在新的参考手册中启动信号中断检测标志占了一位FLT的域,所以FLT的取值设置范围由25-1变为了24-1,这一点也要注意。

老的版本的参考手册(Rev 1, 06/2014)对I2C_FLT的描述

0?wx_fmt=jpeg

寄存器的具体描述可以参考下图

0?wx_fmt=jpeg

0?wx_fmt=jpeg

新版本的参考手册(Rev 2, 02/2015)对I2C_FLT的描述

0?wx_fmt=jpeg寄存器的具体描述可以参考下图

0?wx_fmt=jpeg

0?wx_fmt=jpeg

驱动程序的变化

由于新的参考手册增加了对启动中断的支持,所以对驱动程序的开发在处理中断程序时要增加对启动中断的判断和清中断标志,这一变化使得I2C的整个处理流程都可以在中断中完成,之前的版本启动信号要在中断之外处理,有点不方便,这次飞思卡尔的加入启动信号的中断检测方便不少,具体的中断流程的变化可以对比一下,在没有启动中断检测时,进入中断只要清I2C的IICIF中断标志,如下图流程图片段所示:

0?wx_fmt=jpeg

在新增加启动信号中断检测后,进入中断要判断是不是启动停止中断和重复启动中断,如果是要先清启动停止中断的标志,在清除IICIF中断标志,顺序不能乱。新的中断流程图片段如下图所示:

0?wx_fmt=jpeg

总结

要关注MCU或者数据参考手册的变化和勘误表的变化,以使你的代码更加优化和方便。多上官网查看产品的资料,相信你一定收益匪浅。

0

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

0?wx_fmt=jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值