常问问题

函数指针有啥用?有啥意义?

时间: 2024-04-28 08:53:38 |   来源: 小九直播体育下载

  有些东西就是这样,自己明白该怎么用,用在哪,但如果一下子让我很通俗易懂地表达出来,脑子就卡壳了。

  昨晚夜深人静,我想到了正好我们wifi报警主机那个项目有个例子,很适合去深刻理解。

  这个项目我们对接的是涂鸦云平台,然后涂鸦云提供SDK,我们应该移植到我们自己的项目里去。

  在移植的过程中,我们应该去更改他们SDK里面的代码,我觉得这点是可以优化的。

  比如个人会使用的涂鸦云提供的WiFi模组,通过串口和我们单片机连接,有一个通讯协议,但是涂鸦云帮我们做好了这个通讯协议的代码,所以会提供一个SDK给我们。

  我们在使用SDK的时候,需要修改SDK的代码,把我们这款单片机的串口发送一个字节的函数,移植到SDK里面去。

  如果采用这样的形式,有一种功能实现不了,就是假设涂鸦云这个SDK要封库(lib文件),源码不开放,我们就没法把Hal_Wifi_SendByte放到protocol.c文件的usart_transmit_output函数里面去。

  是不是会有这样的一个问题?这在某种程度上预示着,protocol.c必须开源,但是很多企业有一些核心代码,是商业机密,不能开放的,比如做导航的地图数据库。

  客户的技术水平层次不齐,如果有些基础稍微差点的,把SDK改乱了,这样会增加涂鸦云技术上的支持的人工成本。

  所以,如果我去做,最理想的是不让客户改SDK的任何代码,你就直接按照我的方法和流程,调用函数用。

  第三步:修改protocol.c文件下uart_transmit_output函数,直接调用刚刚定义的函数指针变量Uart_transmit_outputCBS,记住调用前,必须要指针不为空的条件判断,否则,如果指针调用前没正确指向,会造成指针异常,程序死机。

  第四步:在protocol.c文件下编写Uart_transmit_outputCBS函数指针的注册函数,也就是让这个函数指针变量指向一个地址的函数接口。

  为什么要单独写个函数呢?因为我们理想的情况下,是提供函数接口,给别的.c文件调用,而不是用全局变量的形式。

  这就是函数指针的作用,这样就能实现,客户不修改SDK代码,SDK也能调用客户工程下.c文件里的函数了。

  这些技巧不复杂,就像纱窗,有人指点一下,很快就捅破了,没人指点,可能很多年都领悟不了,这也是进阶架构师必须要掌握的技巧。

  声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉

  ?2.AP_IOMCU文件具体代码3.总结摘要本节主要学习AP_IOMCU这个文件夹下的东西是做什么

  区别?1、软件方面这应该是最大的区别了。引入了操作系统。为什么引入操作系统?

  什么好处嘛?1)方便。大多数表现在后期的开发,即在操作系统上直接开发应用程序。不像单片机

  区别? 1、软件方面 这应该是最大的区别了。引入了操作系统。为什么引入操作系统?

  什么好处嘛? 1)方便。大多数表现在后期的开发,即在操作系统上直接开发应用程序

  Arduino做出网上常见的60%的项目。C语言基础和一点面向对象语言编程概念Arduino编程时使用C++,但是C++是兼容C语言的,一些简单基础的部分

  的,没太听清楚,在网上也没看见,感到很新奇,就想问问有没有人了解这一个牌子,还有这个牌子关于

  Flash Interface中AXI Interface和TCM Interface具体

  M7内核的MCU目前只用过H743和H7B0,在配置Cortex Interface时没这个选项,这两天开始

  F767ZGT6,在用CubeMX配置工程时发现F7在这里多了不少项,想问问各位Flash Interface 中AXI Interface和TCM Interface具体

  本帖最后由 *** 于 2017-11-19 20:51 编辑 MAX中的DAQmx和labview软件中的DAQmx创建通道

  MRS的汇编设置assembler和assembler-with-cpp

  各位大佬,如图,MRS 的汇编设置 assembler 和 assembler-with-cpp

  例程 WebServer 参考 FreeRTOS,移植了FreeRTOS的代码,但是编译报错,如下图,是哪里没设置好吗?

  js实现获取应用信息,包括应用名称,图标等信息,没什么问题;但当我想用ets实现的时候,感觉各种不对劲,API看上去没问题,但是获取不到想要的东西,甚至报错。

  ?一个bootloader可以切换到X86保护模式能够读磁盘并加载ELF执行文件格式显示字符一个OS能处理时钟中断显示字符项目组成

  区别吗,STM32的PWM和DAC一级目录二级目录三级目录一、STM32F103输出一路PWM波形一级目录二级目录三级目录一、STM32F103输出一路PWM波形

  stm32f0启动文件里的TSC_IRQHandler与TS_IRQHandler,

  启动文件里的TSC_IRQHandler与TS_IRQHandler,

  ));ijk-aa=0x00;ijk-bb=0xff;}2.在text2.h中,有如下代码:struct a; //不知

  ,我注释了,编译器也没报错typedef struct a b;//取

  互斥信号量保护的一个u8全局变量就和消息邮箱具有同样的传递数据的功能,这么一来消息邮箱用起来不就没什么

  什么是占空比,占空比就是高电平的长度除于总长度乘于百分之百,得到的就是占空比,这个是不同的占空比的:PWM与LED呼吸灯

  关系?我们学过物理的同学必须要知道,我们的占空比越大,做的功就越大,所以LED灯就越亮,反之,一样的原理。就像我们学过的物理一样(W=UIt),所以我们调节占空比就能灯的亮度。二、代码编写

  使用的是64PIN的28035,我想问一下使用Internal VREG和不使用Internal VREG

  区别,在什么应用条件下Enable,什么样的条件下Disable。看了datasheet,还不是很清楚,希望大侠帮忙。谢谢

  更多志同道合的小伙伴一起分享各自的想法,一起解决困惑的难题。首先是看大佬郭天祥的51单片机C语言教程,先开始是懵逼的的状态,还根本摸不清单片机是

  2.嵌入式应用3.PIN 引脚4.外设LED灯:继电器超声波测距模块1.嵌入式是

  重点描述如下:软硬件可裁剪对功能、可靠性、成本、体积、功耗等严格要求嵌入式系统是软件和硬件

  东东?朋友是做美容的,她从这家 买了一个叫【工业手机】的东东,连在电脑上,给老顾客发短信搞促销,最近生意比较火。工业手机是个

  区别,各个库他的优点在哪里。标准库串口通信GPIO初始化外部中断HAL库HAL库其实是标准库更高级的一层封装,深究其实先总结...

  求助大神 :Labview中二值化高级形态学中 Distance和Danielsson

  Labview中二值化高级形态学中 Distance和Danielsson

  区别吧。嵌入式android源码架构:uboot+linux kernel+android(包含文件系统,虚拟机,UI)嵌入式linux:这是大部分人

  比如结构体变量a,那么&a是代表a中第一个成员的地址吗,变量名字a也能代表地址吗还有一个问题,结构体

  小弟最近在看lwip,感觉真的很痛苦啊~~~恳请哪位大神能有简单通俗的语言告诉我这2个

  区别???[C] 纯文本查看 复制代码netif-output = etharp_output;netif-linkoutput = low_level_output;

  写在前面此文觉得非常有逻辑性,而且有很多量子计算方面的常识介绍。大部分资料都是网络公开的,这里做了一个汇集。因此,转发到博客里。文章目录(一)量子是个

主要设备
关于我们
产品中心
移动破碎站
选矿设备
小九直播体育下载
小9直播体育免费直播英超-新闻
小9直播nba免费观看
行业新闻
常问问题
案例
联系我们
网站地图

关注微信平台
关注我们了解 小九直播体育下载动态
咨询热线:136-7499-8789
企业邮箱:vip@xinlianjixie.com
公司地址:温县产业集聚区纬一路与子夏大街交叉口 小九直播体育下载 小九直播体育下载
备案号:豫ICP备17049867号-10