打印
[STM32F0]

STM32F0 IIC slave mode

[复制链接]
1721|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Thethree|  楼主 | 2016-2-14 09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近一直在研究STM32F0的IIC,因为项目要用到IIC,master/slave mode都需要,实现数据通信和IAP功能。
网上有关于这部分资料特别少,所以共享一下,只晒出初始化和中断部分的代码的框架。代码在附件 .c里面,
如果有不对的地方,欢迎指正,大家互相学习一下!

STM32F0相对于STM32F1和STM8S 有很大变化,支持时钟延长即I2C_CR1_NOSTRETCH,并且支持SMBUS。
1,初始化部分:配置时钟和引脚,不使用时钟延长的功能
2,I2C1_IRQHandler 主要处理中断事件
      在I2C_ISR_ADDR事件时,如果设置了多个地址,要判断是那个地址,并且要清除中断标志位。
        根据I2C1->ISR&I2C_ISR_DIR 的结果判断是发送数据还是接收数据。
   (1)发送数据,流程如下
        
        这里要区别一下I2C_ISR_TXIS,I2C_ISR_TXE,描述如下
      
               
    (2) 接收数据,流程如下
         


沙发
Alisa_song| | 2016-3-11 15:12 | 只看该作者
楼主,你好,有没有i2c主模式的中断方式的,可否指点或者共享下,我用查询方式调通了,但是中断方式死活没调试出来。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

236

帖子

4

粉丝