• 网站首页
  • 国内
  • 国际
  • 产业
  • 宏观
  • 公司
  • 体育
  • 评论
  • 人物
  • 投资
  • 嵌入式硬件通信接口协议-IIC(二)分层架构设计模拟接口

    发布时间: 2022-04-29 05:40首页:主页 > 产业 > 阅读()
    本文摘要:关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计仿真模块》讲解SPI模块设计时,早已做到了详尽的设计过程介绍,在此就不赘述了。现在参照SPI的BSP层设计思路,用某种程度的方法来设计IIC模块的BSP层代码模块。 本文即将介绍和构建的内容主要分成两个部分:代码构建IIC模块管理、代码构建IIC时序。IIC模块管理模块管理的目的是想要在后期拓展时,一个工程里可用于多个IIC模块。

    OG体育综合平台

    关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计仿真模块》讲解SPI模块设计时,早已做到了详尽的设计过程介绍,在此就不赘述了。现在参照SPI的BSP层设计思路,用某种程度的方法来设计IIC模块的BSP层代码模块。

    本文即将介绍和构建的内容主要分成两个部分:代码构建IIC模块管理、代码构建IIC时序。IIC模块管理模块管理的目的是想要在后期拓展时,一个工程里可用于多个IIC模块。这里嗣后不考虑到用于简单的数据结构,意味着使用非常简单的宏定义,放到头文件中,省却困难的内存申请人、分配这一些操作者。

    以IIC模块序号“1”开始向后排,追加IIC模块时,必要参照当前示例来定义先前的IIC模块序号和管脚才可:#defineIIC_11#defineIIC1_PORT_SCLPORTB#defineIIC1_PIN_SCL6#defineIIC1_PORT_SDAPORTA#defineIIC1_PIN_SDA2此处要构建的,仍然是坐落于BSP层的IIC模块代码,这个层介于芯片驱动(寄存器)和应用于库之间,要考虑到在后期的重制研发,此IIC模块有可能由IO仿真,也有可能由芯片厂商获取的驱动demo构建,所以这里所PCB出来的BSP层模块,一定要考虑到后期的拓展。所以这里的作法是把参数都放到函数中传送,并且皆设计成具有uint8_t类型的函数返回值。这里如此设计的原因和习惯问题,可以参照《【嵌入式编程】函数回到类型设计》一文。关上STM32CubeMX工具可以看见,在配备IIC模块时,参数可配备内容如下图片:参照以上,不得已在结构体中定义:地址位宽、时钟速率,来定义一个IIC模块对象。

    如下头文件中的bsp_iic_obj_t结构体类型。IIC时序从上一篇《嵌入式硬件通信接口协议-IIC(一)协议基础》中,我们告诉IIC的时序中有这几种信号特征,现在就根据这几个信号特征,用代码一一构建。实质上在互联网上早已有很多关于IIC时序模拟的构建代码,最简单的可以从github开源社区、百度百科、各类技术网站,明确到很多的技术论坛都有IIC应用于实例,都能寻找IIC模块的源码。

    因此IIC时序的仿真早已大同小异了,然而在这里再行“建轮子”的目的是,构建、优化、完备自有项目BSP层的代码,提升项目的扩展性和应用于,对屡屡明代码的整体框架也有相当大协助!说白了也是想要把这篇文章写出详尽些。废话少说,立刻上码:接续标志:这段接续标志的代码,思路很非常简单,首先保证SDA所用于的IO插槽为输入,在本BSP层的IIC模块中用于了iic_set_io(iic_n,0);函数,将登录IIC模块序号的SDA管脚另设为输入,之后的电平设置,就是已完成信号时序的过程。完结标志思路类似于上,额。


    本文关键词:官方入口,嵌入式,硬件,通信,接口,协议,-IIC,二,分层

    本文来源:OG体育综合平台-www.xinhenglian.com

    特别声明:文章内容仅供参考,不造成任何投资建议。投资者据此操作,风险自担。

    网站首页 - 国内 - 国际 - 产业 - 宏观 - 公司 - 体育 - 评论 - 人物 - 投资

    未经本站书面特别授权,请勿转载或建立镜像!

    Copyright © 2008-2022 www.xinhenglian.com. OG体育综合平台科技 版权所有 网站地图 技术支持:OG体育综合平台|官方入口