自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 STM32中IRAM和IROM详细解释

在STM32微控制器中,​​和​​是两种关键的内存区域,分别用于存储运行时数据和程序代码。

2025-07-29 17:03:22 1140

原创 基于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

原创 IO模型-

(1)同步阻塞式IO(2)同步非阻塞式IO(3)IO多路复用(4)异步通知。

2024-11-05 20:05:00 1644

原创 stm32f1——TIM系统定时器

sys属于ARM内核的简单定时器,常用语精准延时,也可用于系统心跳时钟。通用定时器属于外设,通常可以和其他硬件配合使用,如周期性的采集传感器数据,周期性的上报数据,将定时器和GPIO结合产生更多的功能(脉冲检测,唤醒,PWM等)

2024-11-04 19:09:33 830

原创 stm32f1——OLED(I2C版)显示屏

I2C解释及四针OLED显示屏使用方法

2024-10-31 19:55:28 2387

原创 C系统编程——线程的互斥与同步

一般每个程序都会有多个线程,也不能确定每个线程所需要的资源都是独立的,如果有两个线程需要同一个资源,且其中一个使用后却将其给释放掉了,那另一个就会得不到资源导致系统卡死,这也便是死锁,这是我们就新加了新的知识:互斥与同步来预防这类问题的发生。

2024-10-30 20:27:12 989

原创 系统编程——线程

线程(thread),系统编程中很为重要的一种编程方法。

2024-10-29 19:47:45 611

原创 stm32f1项目创建

工具栏魔法棒->C/C++->双击空白处点击右边三点浏览->选择刚刚存入宏定义库的文件夹确认编译成功。如果你用的ST-LINK V2实物操作,进行以下后续操作:魔法棒-> Debug->settings(左边use是仿真,右边use是实物,根据自己勾选)如果界面显示内容不同,则进行以下操作:右键桌面keil5软件,选择打开文件所在位置返回上一文件夹,找到ARM文件夹进入,找到STLink文件夹,点击进入双击ST-LinkUpgrade进入更新。

2024-10-24 20:20:43 1035

原创 TCP网络通信

TCP和UDP一样,都是需要使用socket套接字。

2024-10-23 20:35:11 519

原创 UDP网络通信

socket套接字最初用于进程间的通信,当前主要作用于网络通信。其在网络通信中的作用类似于文件描述符在系统IO中的作用,用于代表通信链接,本质上也是个非负整数。在socket网络通信中,常使用C/S架构,属于服务器客户端模式,一般C/S架构属于一主多从模式,有客户端发起,服务器被动响应。

2024-10-23 16:50:21 620

原创 C系统编程通信方式——信号量集

信号量集,也是标准IPC之一,但他的操作过程相比于共享内存和消息队列来说,稍微比较复杂一点,内容也较多一点。

2024-10-22 19:50:19 795

原创 C系统编程通信方式——消息队列

和共享内存一样是标准IPC之一。

2024-10-22 15:30:20 451

原创 C系统编程通信方式——共享内存

共享内存,标准IPC之一,也是进程间通信最快的一种方式。

2024-10-20 16:58:13 572

原创 C系统编程通信方式——信号

信号,进程间的一种通信方式,其属于使用软中断实现的异步通信。在Linux中,信号通过宏定义将其自带的64个信号以正整数的方式表示。当然使用信号时应该尽量用宏名而不是整数。Linux中可以使用 kill -l 命令来查看具体有哪些信号。信号中前31号信号属于不可靠信号,34~64属于可靠信号。不可靠信号不支持排队,当有多个不可靠信号同时到来时,可能会引发信号丢失等情况。可靠信号可以排队,可以多个信号同事到来,并且不会发生信号丢失的情况。signal函数有两个参数,第一个参数是指的哪个函数,使用SIG宏名。

2024-10-20 10:01:05 1797

原创 C系统编程通信方式——管道

C语言进程间通信最古老的通信方式,管道。

2024-10-18 16:08:24 905 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除