- 博客(61)
- 收藏
- 关注
转载 [转]回调函数的注册机制为什么会在嵌入式固件开发中应用如此广泛?
在下面的代码中,我们可以看到如何使用函数指针将函数作为参数传递给函数。回调机制的另一个好处是,在程序执行期间可以动态更改被调用的回调函数。在初始化函数中,函数指针被分配了应该使用的函数的地址用于处理事件。这是注册回调函数的操作。我们可以编写不使用回调的程序,但是通过将它们添加到我们的工具库中,它们可以使我们的代码更高效且更易于维护。定义回调函数——重要的是要注意回调函数只是一个函数。在我们的例子中,地址应该是回调函数的地址。在下面的代码中,我们可以看到一个函数示例,该函数可用于根据函数 id 调用回调。
2024-04-08 10:08:22
220
原创 BLE学习记录
在peripheral_uart例程进行动态切换广播间隔,上电或者BLE断连后快广播间隔100ms,通过zephyr延时工作队列1分钟后切换为慢广播间隔1S,建立连接后广播停止,并得到验证。notify可以直接发送;Q1:创建了一个NUS服务,并在该服务下创建一个TX Characteristic,蓝牙板写入UART数据,属性为notify。主机扫描参数的设置,连接间隔决定了主从设备之间交换数据的频率,不需要频繁交换数据时拉长连接间隔降低功耗;蓝牙连接后,手机接收5340DK板发送的蓝牙数据前需要做什么?
2023-11-22 16:51:57
632
原创 初学Zephyr系统,相关文档参考
https://docs.zephyrproject.org/3.0.0/reference/kconfig/index-all.html链接如上,写个博客防止自己找不到我在调试NCS中的例程的时候会需要对prj.conf进行配置从而对Kconfig进行配置BLE的相关API可参考https://docs.zephyrproject.org/apidoc/latest/group__connectivity.html
2023-08-22 16:38:55
286
转载 Ubuntu下磁盘扩容
5.重新分配磁盘空间:(如果包含extened的话必须删掉原来的extened才可以对sda1进行add空间,要先删掉extened里的Linux-swap才能删extened,删掉之后两个都要再建回来。4.打开GParted软件,可以看目前的磁盘分区情况,发现多了31G的“unallocated”的空间,因为我扩容到51G了。7.再用df命令查看现在的磁盘分区上的可使用空间,sda1已用31%,扩容成功!在做KVM环境配置的时候,发现20G的磁盘空间不够用,于是打算扩容到50G。
2023-05-10 17:35:50
901
原创 10.31 (笔试题)编写一个函数,要求输入任意两个无符号32位整形数,在控制台打印两个数相加的结果,要求禁止使用64位变量
低位部分的结果就是c里保存的内容,再用一个unsigned int变量保存结果的高位部分,高位部分只可能有两种值,0 或 1 , 就好比十进制两个一位数相加,最大也就是9+9 , 进位部分最大也就是1。结果用unsigned int c保存,c = a + b ,这样c的结果是0x00000000,因为高于32位的部分被截断了,所以。分析:长整数相加,将结果分为高位和低位部分,分别保存在两个32整数中。
2022-10-31 22:06:10
291
原创 10.20 platform总线驱动
通过platform总线驱动实现a.应用程序通过阻塞的io模型来读取number变量的值 b.number是内核驱动中的一个变量 c.number的值随着按键按下而改变(按键中断) 例如number=0 按下按键number=1 ,再次按下按键number=0 d.在按下按键的时候需要同时将led1的状态取反 e.驱动中需要编写字符设备驱动 f.驱动中需要自动创建设备节点 g.这个驱动需要的所有设备信息放在设备树的同一个节点中
2022-10-20 20:41:33
214
原创 9.19 M4核的中断实验(按键/光电开关/火焰传感器/人体红外),检测到中断时,需要打印(串口)触发信息
1>中断实验(按键/光电开关/火焰传感器/人体红外)2>使用M4核,检测到中断触发时,灯的状态(GPIO控制器)取反3>并且检测到中断时,需要打印(串口)触发信息
2022-09-19 19:28:38
216
原创 9.14 以串口初始化波特率:9600,8N1,发送‘o‘,‘k‘,画出通信协议+串口相关知识思维导图
以串口初始化波特率:9600,8N1,发送'o','k',画出通信协议+串口相关知识思维导图
2022-09-14 19:32:51
320
原创 8.31 C++手动实现对象树模型与QT入门
创建一个项目,提供三个按钮,第一个按钮实现播报第二个按钮的内容,播报结束后,设置自己不可用。第二个按钮的内容是关闭,实现功能是关掉整个项目,第三个按钮功能是将第一个按钮设置为可以状态。...
2022-08-31 19:19:59
441
1
原创 8.25 C++多重继承练习
定义一个学生类:成员–> 姓名、年龄、成绩以及相关函数。由学生类和老师类共同派生出研究生类:成员–> 性别。定义一个老师类:成员–> 年龄、职称以及相关函数。实例化就研究生类的对象,并输出该对象的所有信息。...
2022-08-25 19:20:02
146
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人