- 博客(20)
- 收藏
- 关注
原创 Keil调试(RTT Debug 断点)
效果如下:(默认显示两位小数,有其他需求在相同位置自行更改)**效果如下:**要在具体的Terminal中才能看到颜色。4.1 带颜色日志输出。
2025-03-30 18:12:41
1002
原创 HAL库移植FreeModbus-RTU
Github源码地址:https://github.com/cwalter-at/freemodbus。
2025-02-15 11:40:33
587
1
原创 初识Linux
(1)定义变量:变量名=变量值,注意,=号前后不能有空格。(2)撤销变量:unset 变量名。(3)声明静态变量:readonly变量,注意:不能重新赋值,不能unset。语法:export 变量名可把变量提升为全局环境变量,可供其他Shell程序使用。
2024-12-11 19:41:51
872
原创 ESP32项目 --- 智能门锁(WiFi 蓝牙 OTA)
本项目是实现一款智能门锁中的智能控制部分, 可以应用在家庭, 办公室等任何使用门锁的场所.本项目实现了以下主要功能:(1)通过按键配置密码(2)通过按键输入密码开锁(3)录入指纹(4)通过录入的指纹开锁(5)通过蓝牙配置密码(6)语音播报模块(7)通过蓝牙输入密码开锁(8)通过WIFI实现OTA在线升级智能门锁使用的主控芯片为ESP32-C3, 其他功能模块包括:(1)电容触摸按键. 一共有提供12个电容触摸按键, 分别为数字0-9, M和#
2024-12-03 21:17:32
2935
2
原创 嵌入式开发之VSCode常用代码块配置
在使用VSCode做嵌入式开发时我们经常会使用到一些重复代码。这时候我们便可以使用VSCode中的代码段功能快速插入常用的代码模板。
2024-11-18 21:26:52
312
原创 基于STM32的四轴无人机项目
无人机1. 项目概述1.1 简介本项目是基于STM32的微型四轴无人机,控制核心采用STM32F103C8T6,姿态运动传感器选择MPU6050。无人机通过Si24R1(NRF24L01)与控制器进行2.4G无线通信,实现了即时有效地接收控制器指令,通过串级PID进行姿态控制,从而在空间中实现自由移动。1.2 功能描述姿态控制通过MPU6050获取三轴加速度和三轴角速度,经过四元数姿态解算得到三种倾角。利用串级PID算法控制四轴无人机平衡状态。实时操作系统移植FreeRTOS实现多
2024-11-18 20:51:02
2594
2
原创 STM32项目---畜牧定位器
畜牧定位器是智能农场项目的子项目, 目的在于定位农场中的畜牧牲畜. 由于牲畜的运动范围有限(农场中), 故定位频率不用太高, 一般小时级别的定位频率即可满足需求。该定位器也带有计步功能, 可以记录牲畜的运动步数。
2024-11-08 08:21:13
1655
4
原创 STM32项目---水质水位检测
1 项目简介1.1 项目需求本项目通过测量水体的TDS来反映水体的质量。并同时可以测量水位(水深)。1.2 系统总体设计2 硬件模块2.1 硬件选型水位测量模块TDS采集模块外置ADC模块(ADS1115)2.2 水位测量模块使用方法测量原理水位测量传感器本质上是一个压力测量传感器。压力的值和传感器产生的电压值是线性关系,压力的值和水深也是线性关系。物理接线SCK接PB12,是时钟信号。OUT接PB13,是数据输出信号。时序图2.3
2024-11-07 21:41:32
1567
原创 freeRTOS学习笔记
官网:https://freertos.org/任务调度:FreeRTOS通过任务调度器管理多个任务,支持不同优先级的任务,实现任务的有序执行。任务通信和同步:提供了队列、信号量等机制,支持任务之间的通信和同步,确保数据的安全传递。内存管理:提供简单的内存管理机制,适用于嵌入式环境,有效利用有限的内存资源。定时器和中断处理:支持定时器功能,能够处理中断,提供了可靠的实时性能。开发社区:拥有庞大的用户社区,开发者可以在社区中获取支持、解决问题,并分享经验。
2024-11-07 21:24:17
768
原创 CAN通信案例
CAN(Controller Area Network 控制器局域网,简称CAN或者CAN bus)是一种功能丰富的车用总线标准。被设计用于在不需要主机(Host)的情况下,允许网络上的单片机和仪器相互通信。参考:https://www.kvaser.cn/about-can/can-protocol-tutorial/MCR主控寄存器: 自动离线管理 自动唤醒功能 睡眠模式请求 初始化请求MSR主状态寄存器: 中断标志位 睡眠模式确认位 初始化模式确认位。
2024-10-23 22:14:10
1673
原创 C语言高级
/ 1)方式一:先指定元素的个数和类型,再进行初始化(先声明,再初始化赋值)// 2)方式二:指定元素的类型和个数并同时进行初始化(声明并同时初始化赋值)// 3)方式三:指定元素的类型,不指定元素个数,同时进行初始化(声明时不指定长度,必须同时进行初始化赋值);printf("请输入数组长度:\n");//此处的数组长度用len,只能声明数组不能在声明的同时赋值i < len;i++)printf("请输入第%d个数组值:\n", i + 1);
2024-10-21 21:05:43
591
原创 C语言基础
第一种方式C89标准没有定义布尔类型,判断真假时以0为假,非0为真 ,但这种做法不直观,我们一般需要借助C语言的宏定义。第二种方式C99标准提供了_Bool 型,_Bool仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。第三种方式C99标准还提供了一个头文件 定义了bool代表_Bool,true代表1,false代表0。
2024-10-21 20:51:29
1294
原创 STM32高级外设篇笔记
ADC1~ADC3都搭载了APB2高速时钟总线通道转换结束中断(EOC):注入组和规则组转换结束都会产生注入转换通道转换结束中断(JEOC):只有注入组转换结束会产生模拟看门狗中断。DMA 请求:只有ADC1和ADC3可以产生DMA请求。16位的寄存器只用到了其中的12位。高12位左对齐。(注入组一般左对齐)低12位右对齐。(规则组一般右对其)ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。所以最低分频系数为6。
2024-10-20 21:51:32
745
原创 物联网通信之以太网通讯---ETH
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层—TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
2024-10-20 21:09:38
2281
原创 STM32+ESP32-C3 WiFi开发测试案例
AT 命令以 “AT” 开始,代表 Attention,以新的一行 (CR LF) 为结尾。因此,在使用 AT 命令时,应等待上一条命令执行完毕后,再发送下一条命令。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Bluetooth LE 命令、Bluetooth 命令、MQTT 命令、HTTP 命令、Ethernet 命令等。需求:测试AT指令,测试AT指令是否能够正常控制ESP32的wifi,比如重启,读取设备信息等。(1) 发送需要发送数据的AT指令。
2024-10-20 21:00:38
1641
4
原创 BKP(备份寄存器)&RTC(实时时钟)
BKP(backup register,备份寄存器)。备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。此外,BKP控制寄存器用来管理侵入检测和RTC校准功能。RTC(Real Time Clock,实时时钟)。是一个掉电后仍然可以继续运行的独立定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。
2024-10-20 20:54:05
1020
原创 IWDG看门狗技术
看门狗是一种计时硬件电路。当系统环境比较恶劣复杂的时候,程序可能会出现一些不可预料的错误,导致程序卡死,崩溃等情况。看门狗就可以及时的重置程序,使程序重新从头开始运行。STM32 有2个看门狗,独立看门狗和窗口看门狗。IWDG(Independent watchdog,独立看门狗)。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。
2024-10-20 20:41:07
1025
原创 STM32中的电源控制(PWR: Power Control)
电源控制(PWR: Power Control)。电源对电子设备来说非常重要,它是保证系统稳定运行的基础。在保证系统能稳定运行的同时,对嵌入式设备一般又有低功耗的需求。
2024-10-18 21:05:30
1632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人