- 博客(17)
- 收藏
- 关注
原创 ADXL345 三轴加速度计的使用--Arduino平台
创作灵感#一位学弟的毕设手表当中使用到了ADXL345,对手腕抬手进行监测,通过IIC通信,使用平台为Arduino。同时带大家一起阅读一下手册来进行对功能的调试和开发。很多朋友都喜欢用库来解决问题,实际开发过程中底层驱动都是需要自己手把手写的。门槛说高不高,说低不低,足够的抽象理解能力、逻辑能力,还要有足够的耐心,能自己编写;
2024-11-01 22:48:59 931
原创 关于嵌入式领域时间调度器的设计
define Task_Max 6 //最多装载的任务数量//回调函数指针u16 Delay;//距离下次运行时间u16 Period;//周期u8 Runme;//是否需要运行}sTask;上图第一部分主要是定义结构体,包括任务的运行周期和运行函数的接口;void(*PTask)(void) 是一个指向空函数的指针 ,用以方便的执行函数调用;实际需要传递参数的时候,只需要将函数的名称传递给它,或者将另一个同类型指针传递给它;函数的名称就是它自己的入口地址;
2024-07-23 12:27:42 388
原创 嵌入式的实时性---时间片轮询
创作灵感:在实际的工业生产生活中,很多嵌入式编程的流程之中,几乎都是不允许CPU在当前的状态阻塞太长时间,一般不会超过1ms。以此建立的时间片轮询的算法,成为了工程师必备的本领,不同人的实现方式可能不一样,但是实现逻辑是差不多的。下面我们以一个实际的单总线半双工通信的发送情况来进行描述,希望能帮助你更好的理解时间片。工程要求:全程无阻塞,按键KEY1按下(无需松手)的时候,单总线COM发送完整的一帧。
2024-07-13 13:13:21 409
原创 KEIL- MDK 的 C语言编程规范(多文件)
虽然这样使用看起来较为方便,实际上存在一定风险,例如c/RUN(a,b) 就是c/a*b,跟我们预期的结果不一样,所以要注意使用方式,写成 ((a)*(b)),就十分安全函数复杂起来的话,也可以使用大括号来包含几行。同样的问题是 只是define,碰到if (1) FOO(10) 这种句子,宏定义也只有一行会执行。}while(0)所以没有必要,不建议这样使用,直接使用函数即可。防止当你include的时候,变量名重复了。只调用函数来寻找变量,不调用变量去寻找函数。
2024-07-02 14:23:58 995
原创 关于时间片轮询+回调函数的用法
#创作来源:我自己本身不是软件工程专业的,所以对很多应用程序的业务逻辑没有那么清晰,因为一直使用的都是C,很少有比较复杂的业务逻辑。 在不使用RTOS等实时性系统的时候,我们常会用到时间片轮询来对系统的运行时间进行把控,大概的逻辑就是:1、将时间等分为均匀的时间片,通常以系统某个定时器的定时器中断为区分,例如几十ms一次。2、将所有需要处理的任务根据优先级进行划分,优先级高的任务可以优先请求时间片,同一优先级的任务交替使用时间片。3、针对同一优先级的任务,在一个时间片内如果任务没有处理完,则该
2024-07-02 10:54:02 398
原创 CAN通信的快速上手实战开发--以STM32F103ZET6基础型产品为例(理论+实操举例)
CAN(Controller Area Network,控制器局域网络)是一种广泛应用在汽车、工业控制、自动化设备以及其他嵌入式系统中的现场总线标准,由德国博世公司(Bosch)在1983年开发。它是一种用于实时应用的串行通信协议,特别设计用于在各种电子控制单元(ECUs)之间实现可靠的数据交换,这些单元可能分布在车辆、工厂或设备的不同部分。特点:多主架构:CAN网络中没有明确的主控设备,任何连接到总线上的节点都可以在适当的时候发起通信,实现了真正的多点对多点通信。差分信号:CAN总线使用。
2024-06-24 04:31:27 882
原创 入门STM32代码编写的寄存器版本
如果你还在新手保护期,希望这篇博客能对你有一些指导意见,也希望你能在嵌入式的道路上渐行渐远,而不是浅尝辄止。事实上,你可以相信,只要你有足够的数学理解能力,哪怕到了后期上OS系统,你也是能够驾驭的。嵌入式最考验人的便是调试代码的煎熬,有时候工作一次性调试几千行代码,用起来很多不同的外设,很难说一次性就完成。
2024-06-17 02:48:49 1078
原创 带你快速上手STM32F103的HAL库开发--keil版
HAL库的好处:初级开发者不需要太仔细阅读芯片手册;封闭性较好;开发速度较快坏处:你需要去阅读HAL库文件的函数,英文备注很烧脑,甚至你会觉得他的算法比较抽象;代码量太大,占内存,优化不是很好。推荐还是需要仔细去看stm32f1xx.h 了解其中结构体数据类型有哪些 然后从寄存器的角度去看待HAL库函数做了些什么。
2024-06-11 05:53:36 3156
原创 如何解决keil4 keilMDK 兼容性的问题
下载完成后,你会得到一个以文件后缀exe结尾的安装包:安装方式同大多数软件安装方式一样,留下你的安装方式,还要留下你的个人信息(建议瞎填)。通常我们将keil 4 和keil MDK安装在不同文件夹下面。打开两者的文件夹,你会发现目录下还有各种不同的文件目录。
2024-05-31 16:10:17 1008
原创 lcd1602+STC12C5A60S2,实现电压0-20v读取---讲解细致
STC12C5A60S2自带A/D转换器的使用_奔跑路上的小柱子的博客-CSDN博客在我们使用传统8051单片机的时候,常常使用某些需要进行A/D转换的模块,比如烟雾传感器(MQ-2)、超声波测距模块、人体红外传感器等等,这样会使我们的工作量增加不少。但是我们可以选择STC12C5A60S2单片机,它作为新一代8051单片机,内部集成了8路高速10位A/D转换器,可以省略外加A/D转换模块的步骤。提示:以下是本篇文章正文内容,下面案例可供参考。
2023-06-16 12:42:24 1066 1
原创 ESP8266 初级开发物联网--Arduino IDE+点灯科技
大学生呕心沥血,就是玩儿,什么都去试一试。玩什么游戏谈什么恋爱,代码才是我的真爱。
2022-10-28 19:24:47 4738 2
esp8266安装包-Arduino IDE
2022-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人