- 博客(17)
- 收藏
- 关注
原创 单片机各种驱动简要解释
摘要:本文系统介绍了单片机常见的12种驱动技术,包括GPIO、I2C、SPI、UART、CAN、USB、PWM、ADC/DAC、定时器、看门狗和DMA。详细阐述了每种驱动的工作原理、协议特点、配置参数和典型应用场景,如GPIO用于基础I/O控制,I2C适用于低速多设备通信,SPI适合高速数据传输,CAN应用于工业抗干扰环境等。最后提出了驱动选择的基本原则,包括根据速度需求、设备数量、抗干扰性、开发复杂度等因素进行合理选型,为单片机系统设计提供全面的驱动技术参考。
2025-12-11 10:26:52
1078
原创 c语言中strcpy,memcmp,strstr,strcmp函数作用
摘要:本文介绍了四种常用字符串和内存操作函数(strcpy, memcmp, strstr, strcmp)的标准库实现与自定义实现方法。strcpy用于字符串复制,memcmp比较内存块,strstr查找子串,strcmp比较字符串字典序。文章分析了各函数的终止条件和返回值,并强调安全注意事项:strcpy易导致缓冲区溢出,建议使用strncpy;memcmp适用于非字符串数据;strstr性能可优化。最后指出标准库函数效率高但需注意安全,自定义实现适合嵌入式等特殊场景,不同函数分别适用于字符串操作、固件
2025-07-29 17:15:41
499
原创 基于ESP-IDF的4G网络OTA升级
本文介绍了基于BG95-M3 4G模块和ESP32-U4WDH单片机的OTA升级实现方案。系统通过HTTPS协议从指定服务器下载固件升级文件,主要功能包括:1)初始化NVS存储和4G模块;2)建立HTTPS连接获取OTA文件;3)分块接收数据并写入ESP32分区;4)版本验证和系统重启。代码实现了AT命令交互、数据接收缓冲、OTA分区操作等关键功能,使用NVS存储设备版本信息。测试过程中需注意头文件依赖和函数定义问题,确保bg95.h和nvs_topic.h中的相关函数和变量正确定义。
2025-07-25 10:48:15
302
原创 stm32f1——TIM系统定时器
sys属于ARM内核的简单定时器,常用语精准延时,也可用于系统心跳时钟。通用定时器属于外设,通常可以和其他硬件配合使用,如周期性的采集传感器数据,周期性的上报数据,将定时器和GPIO结合产生更多的功能(脉冲检测,唤醒,PWM等)
2024-11-04 19:09:33
831
原创 C系统编程——线程的互斥与同步
一般每个程序都会有多个线程,也不能确定每个线程所需要的资源都是独立的,如果有两个线程需要同一个资源,且其中一个使用后却将其给释放掉了,那另一个就会得不到资源导致系统卡死,这也便是死锁,这是我们就新加了新的知识:互斥与同步来预防这类问题的发生。
2024-10-30 20:27:12
989
原创 stm32f1项目创建
工具栏魔法棒->C/C++->双击空白处点击右边三点浏览->选择刚刚存入宏定义库的文件夹确认编译成功。如果你用的ST-LINK V2实物操作,进行以下后续操作:魔法棒-> Debug->settings(左边use是仿真,右边use是实物,根据自己勾选)如果界面显示内容不同,则进行以下操作:右键桌面keil5软件,选择打开文件所在位置返回上一文件夹,找到ARM文件夹进入,找到STLink文件夹,点击进入双击ST-LinkUpgrade进入更新。
2024-10-24 20:20:43
1035
原创 UDP网络通信
socket套接字最初用于进程间的通信,当前主要作用于网络通信。其在网络通信中的作用类似于文件描述符在系统IO中的作用,用于代表通信链接,本质上也是个非负整数。在socket网络通信中,常使用C/S架构,属于服务器客户端模式,一般C/S架构属于一主多从模式,有客户端发起,服务器被动响应。
2024-10-23 16:50:21
620
原创 C系统编程通信方式——信号
信号,进程间的一种通信方式,其属于使用软中断实现的异步通信。在Linux中,信号通过宏定义将其自带的64个信号以正整数的方式表示。当然使用信号时应该尽量用宏名而不是整数。Linux中可以使用 kill -l 命令来查看具体有哪些信号。信号中前31号信号属于不可靠信号,34~64属于可靠信号。不可靠信号不支持排队,当有多个不可靠信号同时到来时,可能会引发信号丢失等情况。可靠信号可以排队,可以多个信号同事到来,并且不会发生信号丢失的情况。signal函数有两个参数,第一个参数是指的哪个函数,使用SIG宏名。
2024-10-20 10:01:05
1797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1