- 齐达内快看:皇马小门神暴强扑点+指尖拒能拐弯的角球!乌克兰压美国头名出线|江南app体育官网登录
- 21岁长腿机器超强一战!8万人鼓掌 他一下皇马崩了【JN江南·体育网页版】
- jn江南·体育登录入口|2017年8月4日山东鸡蛋价格走势
- JN江南体育-全国规模以上生猪定点屠宰企业屠宰量(2017年10月)
- 江南app体育官网登录|疫情下的“空中双选会” 几家欢喜几家愁
- 【江南app体育官网登录】让儿童更尽情而安全地享受互联网馈赠
- JNTY江南官方体育app:2019年春季期第三周食谱
- ‘jn江南·体育登录入口’让孩子受点气,是多么可贵的教育!可惜98%的人都不懂~
- “JNTY江南官方体育app”马丁斯处子球对手中横梁 国王杯马竞1-0客胜丙级队占得先机
- jn江南·体育登录入口|USDA参赞:2018/19年度中国豆粕产量预计增加
邮箱:admin@sxzjdq.com
手机:13519932648
电话:020-88888888
地址:青海省海西蒙古族藏族自治州库尔勒市算展大楼9897号
江南app体育官网登录-嵌入式硬件通信接口协议-IIC(二):分层架构设计模拟接口
关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-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管脚另设为输入,之后的电平设置,就是已完成信号时序的过程。完结标志思路类似于上,额。
本文关键词:JN江南体育,jn江南·体育登录入口,JN江南·体育网页版,江南app体育官网登录,JNTY江南官方体育app
本文来源:JN江南体育-www.sxzjdq.com
-
2025-02-09【JN江南·体育网页版】电动汽车是否将迎来iPhone时刻?
-
2025-02-08JN江南体育-剖析物联网的需求第一部分
-
2025-02-08生物识别安全系统真的安全吗?-jn江南·体育登录入口
-
2025-02-08【JN江南体育】RELX悦刻发布新品“无限系列”:在品质安心上追求极致
-
2025-02-07阿里巴巴换帅 张勇接替陆兆禧任CEO“JN江南·体育网页版”
-
2025-02-06疫情之下,全球航空航天业的运转状态-江南app体育官网登录