热门关键词:澳门新浦京,澳门新浦京8455com  
IIC计时前《嵌入式硬件通信接口协议:澳门新浦京8455com
2021-01-11 [12024]
本文摘要:#defineiic_11#defineic1_port_SCLportb#defineic1_pin_SCL6#define仍然位于BSP层的iic模块代码。以下头文件中的bsp_iic_obj_t核心类型。

分层设计的想法在前面的文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计仿真模块》描述SPI模块设计时已经完成了详细的设计过程介绍,在这里不详细说明。现在,参照SPI的BSP层设计思路,对IIC模块的BSP层代码模块进行一定程度的设计。本文由代码构建IIC模块管理、代码构建IICC时序等两部分组成。IIC模块管理模块管理的目的是在以后扩展时,在一个项目中用于多个IIC模块。

设计

以下不考虑简单的数据结构。这意味着使用非常简单的宏定义放置在头文件中,节省了困难的内存请求者,并分配了这些操作员。

以IC模块序列号“1”开头添加IC模块时,必须参照当前示例定义以前的IC模块序列号和针脚。# defineiic _ 11 # defineic 1 _ port _ SCL portb # defineic 1 _ pin _ SCL 6 # define仍然位于BSP层的iic模块代码。该层位于芯片驱动(寄存器)和库之间。

设计

以后要考虑复制开发,IIC模块可以由IO模拟制作,也可以由芯片供应商获得的驱动demo构建。因此,PCB中出现的BSP层模块必须考虑后期扩展。因此,这里的方法是将参数放入函数中,全部设计为uint8_t类型的函数返回值。

这里这样设计的原因和习惯问题可以参考《【嵌入式编程】函数回到类型设计》文章。关闭STM32CubeMX工具后,您会发现安装IC模块时,参数可能包含以下图片:参照以上,不能在结构中定义。定义地址位宽、时钟速度和IIC模块对象。以下头文件中的bsp_iic_obj_t核心类型。

设计

IIC计时前《嵌入式硬件通信接口协议-IIC(一)协议基础》告诉IIC计时有这些信号特性。现在,根据这些信号功能逐一编写代码。实际上,互联网上已经有很多IIC计时模拟的构建代码。

模块

最简单的是,github开源社区、百度百科、各种技术网站和很多技术论坛都有IIC应用程序实例。可以找到IIC模块的源代码。因此,虽然IIC时序模拟已经相似,但在这里重建轮子的目的是构建、优化、完善自己项目BSP层的代码,提高项目的可扩展性和应用,对多次证明的代码的整个框架也有很大帮助!老实说,我也想更详细地写这篇文章。

别废话了,直接放在上面:这个连接标志的代码很简单。首先,请确认SDA使用的IO插槽是输入,并且此BSP层的IC模块使用了ic_set_io(iic_n,0)。将登录IC模块序列号的SDA针脚设置为输入的函数,后续级别设置是完成信号计时的过程。

结尾标志的思维方式与上述相似。(西方)。


本文关键词:构建,序列号,澳门新浦京,计时

本文来源:澳门新浦京-www.fulloyunmod.com