自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (7)
  • 收藏
  • 关注

原创 rt-thread------任务调度

本文主要阐述rt-thread任务切换原理,优先级和时间片的概念

2023-09-09 19:45:09 871

原创 rt-thread系列文章目录

本文是rt-thread系列文章目录,后续关于rt-thread的更新都会添加到此文内。

2023-09-09 00:00:06 234

原创 C语言面向对象的编程思想

面向对象编程Object-Oriented Programming,OOP)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。

2023-08-30 22:22:12 363

原创 git 基础入门

Git是一个分布式版本管理系统,用于跟踪文件的变化和协同开发。版本管理:理解成档案馆,记录开发阶段各个版本分布式&集中式分布式每个人都有一个档案馆,集中式只有一个档案馆。分布式每人可以管理自己的档案馆,当自己觉得代码完成,可以提交自己的档案馆与他人的进行合并github、gitlab、gitee都是基于git工具做的托管平台。

2023-08-27 19:28:55 577

原创 IEEE802.11管理帧

MAC帧最小帧组成包括Address 1和FCS四个部分组成,其他部分长度都可以为0。图中Octets单位为Byte。

2023-07-05 23:39:15 398

原创 rt-thread-------内存管理(内存堆)

简述堆和栈堆(stack):由编译器自动分配释放栈(heap):一般由程序员分配和释放。小内存管理法、slab 管理算法、memheap 管理算法

2023-07-05 23:06:13 1180

原创 rt-thread------串口V1(三)接收

rt-thread串口V1版本接收

2023-07-03 00:43:29 1916

原创 WINBOND/华邦 W25Qxxx调试笔记

项目中原来使用华邦W25Q128芯片,后因为flash容量续替换为W25Q256芯片。Bootloader使用自己分装的对W25Q128驱动程序,APP程序使用armink提供。项目程序放在stm32片内flash中,片外norflash中存放OTA的固件和更新标志位。Bootloader上电读取flash中更新标志位位和校验数据都正常,APP读取flash中工作参数也都正常。

2023-03-13 00:41:17 801

原创 rt-thread------串口(二)发送篇

这篇文章主要讲一下rt-thread的串口的三种发送,轮询、中断、DMA发送。rt-thread提供的串口驱动V1版本中断发送有问题,这边只提供中断的发送思路,或者大家可以去研究一下V2版本。后续会有V2版本的文章更新。首先需要提出两个概念阻塞和非阻塞,阻塞顾名思义程序会在这里等待到阻塞结束。非阻塞则会立马执行结束跑到后面的程序。里面本质上会调用(中断发送)(dma发送)轮询发送。

2023-03-12 22:11:30 2859

原创 STM32------串口理论篇

串口收发,中断接收、中断发送、DMA发送、DMA接收、轮询发送

2023-02-28 07:50:47 1650

原创 rt-thread------串口V1版本(一)配置

UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器,UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输,是在应用程序开发过程中使用频率最高的数据总线。我们经常在串口上接WIFI、4G模块,也可以增加电平转换芯片变成RS232和RS485通信接口。rt-thread官网对串口做了详细的说明。这篇文章的目的是讲一下我对串口发送接收模式的理解和使用过程中遇到的问题。

2023-02-12 22:54:26 1846

原创 rt-thread------生成工程模板

menuconfig 图形化配置界面,交互性好,操作逻辑强;丰富的文字帮助说明,配置无需查阅文档;使用灵活,自动处理依赖,功能开关彻底;自动生成 rtconfig.h,无需手动修改;使用 scons工具生成工程,提供编译环境,操作简单;提供多种软件包,模块化软件包耦合关联少,可维护性好;软件包可在线下载,软件包持续集成,包可靠性高;提示:以下是本篇文章正文内容,下面案例可供参考menuconfig: 打开图形化配置界面:配置图形化界面配置。

2022-11-17 08:00:00 843

原创 rt-thread ------fal移植

FAL (Flash Abstraction Layer) Flash 抽象层从上图可知,fal是对不同的flash设备做出抽象的接口,可以分区管理、读写且支持多块flash。rt-thread移植fal库还是挺方便的几乎env使能配置就可以搞定了,只有fal_cfg.h配置文件需要用户根据实际情况去修改。后续还会在这个基础上出一期easyflash移植的教程。

2022-11-16 00:41:50 1334

原创 Vscode EIDE+Cortex Debug搭建STM32开发仿真环境

Vscode EIDE+Cortex Debug编译下载仿真构建STM32开发环境

2022-04-30 16:24:45 7763 14

原创 结构体------对齐与压缩(#pragma, __packed)

结构体对齐原则:压缩结构体的方法_packedpacked属性的主要目的是让编译器更紧凑地使用内存。当它用于变量时,告诉编译器该变量应该有尽可能小的对齐,也就是1字节对齐。当它用于结构体时 ,相当于给该结构体的每个成员加上了packed属性,这时该结构体将占用尽可能少的内存。#program pack()aligned...

2022-04-25 22:26:10 1964

原创 STM32 IAP固件升级 认知篇

环境stm32f103zet6MDK 5.28芯片Flash大小我用的是stm32f103zet6属于高容量产品,flash大小512KB,每个Page2KB大小,一共256页(这个可以根据自己的芯片去ST官网查询文档),如下图所示:我们这边对这个flash再做个划分(需要根据固件大小和bootloader程序大小划分,bootloader程序出厂就不会改变了,所以要预留考虑好分区是否放的下程序):bootloader大小是前128KB,从0x08000000~0x0801FFFFAP

2022-04-17 22:42:35 1430 2

原创 STM32的堆和栈

STM32的堆和栈

2022-04-17 14:34:32 4055

原创 Ymodem下载协议

背景这里的Ymodem是YMODEM-1K(除此还有Ymodem-g(没有CRC校验,不常用)),经常使用在IAP固件升级中。是X-modem协议升级过来的,每一包数据可以达到1024字节,比X-modem高效很多。这个协议包括了文件的识别、传送的起止时间、错误的判断与纠正等内容,所以也可以较好的保正固件在传输的过程中的正确性。帧头SOH 01H(modem 128数据帧头)STX 02H(Ymodem 1024数据帧头)EOT 04H(发送结束)ACK 06H(应答)NAK 15H(非应答

2022-04-14 23:00:11 654 3

转载 FreeRTOS 线程安全的printf输出(使用STM32F103)

https://blog.csdn.net/baidu_23187363/article/details/53811144环境STM32F103开发板HAL库(标准库也没事换个串口输出函数就行)MDK5.28STM32CubeMX前言原本直接使用串口输出来debug调试的,但是添加FreeRTOS之后出现乱码的现象。所以决定做个线程安全的printf函数来打印输出方便调试。原因假设一个115200的波特率发送一个8位的数据、1个停止位、1个起始位、无奇偶校验位,需要大约87us,当发送大量

2022-03-14 17:19:48 6553 1

原创 modbus rtu协议 认知篇

简介Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。MODBUS是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。OSI7层模型层ISO/OSI模型7应用层Modbus协议6表示层NULL5会话层NULL4传输层NULL3网络层NULL2数据链路层Modbus串行链路协议1物理层RS485/RS422/RS232MODBUS帧格式

2022-03-08 00:01:22 1452

原创 attribute的section属性

语法_attribute_((section(name)))作用常用于初始化模块中,添加新的模块不需要修改之前的代码。传统做法:如果我需要在主函数的初始化中添加新功能C的初始化,那么我必然需要修改主函数。使用__attribute__((section()))构建初始化函数表后的做法:那么我们只需要完成功能C的初始化,然后添加到对应的初始化表中。main函数中初始化函数表的时候,就会自动完成模块的初始化。那么可能有人问了,第一种明显简单易懂为啥需要使用__attribute__呢?如果

2022-03-07 14:16:16 3907

原创 CCS6 配置工程头文件路径方法

软件版本Code Composer StudioVersion: 6.1.3.00034配置头文件给工程配置:右键工程名字没然后选择Properties选择CCS Build->Cxxxx Compiler->Include Options然后点击 Add dir to.....框框中的绿色加号选择对应的路径。然后一路OK。只给文件夹添加后面操作与整个工程添加步骤一致...

2022-03-06 01:19:27 4047 2

原创 计算机网络和LWIP思维导图

版本计算机网络和LWIP思维导图V1.0](https://download.csdn.net/download/qq_39854159/80330994)gitee链接V1.0分享版本这个可以直接看,不需要下载。说明1、free2、目前内容主要包含内容包含:数据结构与算法思维导图 包含:包含:OSI七层模型、TCP/IP四层模型、TCP、UDP、Socket、计算机网络基础这几个方面。后续还会更新完善3、目前提供百度脑图版本,只需要使用网页版百度脑图打开。思维导图预览操作步骤1、

2022-02-13 22:29:00 782

原创 数据结构与算法思维导图(学习笔记)

版本gitee链接V1.0分享版本这个可以直接看,不需要下载。说明1、free2、目前内容主要包含内容包含:数据结构与算法思维导图 包含:线性表、顺序结构、链式结构,栈与队列,串,二叉树、前中后序遍历,查找,排序这几个方面。后续还会更新完善3、目前提供百度脑图版本,只需要使用网页版百度脑图打开。思维导图预览操作步骤1、打开百度脑图网页版2、新建脑图3、点击百度脑图4、参考资料...

2022-02-13 01:33:26 1723

原创 c语言思维导图(学习笔记)

版本V1.0下载版本gitee链接说明1、free2、后续还会更新完善,并提供xmind版本。3、目前提供百度脑图版本,只需要使用网页版百度脑图打开。操作步骤1、打开百度脑图网页版2、新建脑图3、点击百度脑图4、参考资料五里之南C语言中文网14skyang根号五21aspnetGreenHand《c primer plus》...

2022-02-12 16:54:51 1081

原创 *p++、*++p、++*p、(*p)++

整理c语言指针的时候发现几个很有意思的东西,直接先上代码在解释。背景条件GCC 版本7.4.0i++:先使用i,再递增++i:先递增,再使用i优先级表:同一优先级的运算符,运算次序由结合方向所决定。*p++#include <stdlib.h>int buf[]={1,3,5};int main(){ int *p = buf; printf("%d\r\n",*p++); printf("%d",*p); return(0);}结果

2022-02-12 00:00:38 667

原创 minicom入门

minicom入门

2022-01-26 22:35:25 580

原创 安装交叉编译器arm-none-liunx-gnueabihf

安装交叉编译器arm-none-liunx-gnueabihf

2022-01-26 14:46:58 2823 2

原创 STM32F103 SPI(踩坑日记)

STM32F103 SPI 笔记

2022-01-20 17:30:10 11158 2

原创 rm删除文件

语法:rm [options] name...参数:-i 删除前逐一询问确认。-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r 将目录及以下之档案亦逐一删除例子删除文件夹abc及文件夹中所有文件rm -rf abc出现以下提示解决办法rm: cannot remove 'xxx': Permission denied使用:sudo rm...

2022-01-19 23:43:32 79

原创 pip使用镜像网站解决网速慢

原因pip安装库默认会访问国外服务器解决方法使用国内镜像网站pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple-i:指定镜像源镜像源中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple豆瓣:http://pypi.douban.com/simple/清华大学:https://pypi.tuna.tsinghua.edu.cn/simple...

2022-01-19 15:02:23 203

原创 C/C++内存分区(二)

内存分区模型C/C++将内存大方向分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理。全局区:存放全局变量和静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值/局部变量等。堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。前两个在代码运行前就存在,后两个在代码运行后才产生。代码区存放CPU执行的机器指令特点:代码区是共享的,对于频繁执行的代码程序,只需要内存中存放一份代码。代码区是只读的,防止程序意外修改了他的指令。全局区全局区还包

2021-11-24 23:58:58 337

原创 vcs import src < ros2.repos失败

网上找到的ros安装教程:但是运行到下面几部的时候出现了问题 1. mkdir -p ~/ros2_ws/src 2. cd ~/ros2_ws 3. wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos 4. vcs import src < ros2.repos第三步报错:和网络有关系,主要是raw.githubusercontent.com的DNS被污染,国内很难访问。也尝试过在host文件中用这个网

2021-11-21 22:30:16 8141 13

原创 计算机网络——常用名词(数据链路层)

常用名词名称含义MTU最大传输单元路径MTU指一条因特网传输路径中,从源地址到目的地址所经过的“路径”PPP点对点协议ARP地址解析协议RARP逆地址解析CSMA/CD带冲突的载波侦听多路接入SNAP子网接入协议LLC逻辑链路控制DSAP目的服务访问点SLIP串行线路IPMTU最大传输单元以太网和IEEE802.3对数据帧都有一个最大限制1500和1492SLIP串行线路IP它是一种在串行线路上对I

2021-11-15 23:32:21 189

原创 计算机网络——常用名词(IP网际协议)

数据链路层名称含义MTU最大传输单元路径MTU指一条因特网传输路径中,从源地址到目的地址所经过的“路径”PPP点对点协议ARP地址解析协议RARP逆地址解析CSMA/CD带冲突的载波侦听多路接入SNAP子网接入协议LLC逻辑链路控制DSAP目的服务访问点SLIP串行线路IPMTU最大传输单元以太网和IEEE802.3对数据帧都有一个最大限制1500和1492SLIP串行线路IP它是一种在串行线路上对I

2021-11-09 20:35:55 1841

原创 客户端-服务器模型

客户端服务器模型重复型:并发型:大部分网络应用程序在编写的时候都是假设一个客户端,一个是服务器。服务器是为客户端提供特定的服务。可分为重复型和并发型。重复型:第一步 等待一个客户端请求第二步 处理客户端请求第三步 发送响应给发起请求的客户第四步 返回第一步优点缺点简单易懂便于学习在第二步的时候无法给其他客户端提供服务,需要等当前客户端处理结束到达第四步才能接受新的客户端的请求并发型:第一步 等待一个客户请求的到来。第二步 启动一个新的服务器来处理这个客户的请

2021-10-27 11:20:27 296

原创 LWIP学习之Socket(应用篇)

单连接TCP/IP通信客户端和服务器流程图代码分析:服务器客户端单连接TCP/IP通信客户端和服务器流程图其流程图就像打客服电话一样,服务器可以理解成中国移动客服电话一样,我们便是客户端。服务器就需要使用Socket()注册一个电话,使用bind()绑定一个电话号码10086,listen()就是一个客服在监听着电话。然后进入accept()阻塞之中。毕竟这个时候没人打电话也不需要处理什么东西。这个时候我们客户端也可以使用socket()注册一个电话,然后使用connect()拨打10086。.

2021-10-24 23:13:50 2128

原创 LWIP学习之Socket (API篇)

Socket接口编程SocketSocket API1. socket()2.blind()3.listen()4.accept()5.读 read()、revel()6.写sendto()、send()、write()7.close()、SocketSocket API1. socket()2.blind()3.listen()4.accept()5.读 read()、revel()6.写sendto()、send()、write()7.close()、...

2021-10-19 00:13:53 4349

原创 Ethercat状态机转化(ESM)

ESM状态机四种应支持的状态机●Init.Pre-Operational.Safe-Operational.Operational.一种可选的状态机●Bootstrap.其状态转化关系,如下图所示:状态转化本地管理服务IP开始邮箱通信PI停止邮箱通信PS开始输入更新SP停止输入更新SO开始输出更新OS停止输出更新OP停止输出更新,停止输入更新SI停止输出更新,停止邮箱通信OI停止输出更新,停止输入更新,

2021-10-08 23:27:52 2196

原创 数据结构------栈(笔记)

栈定义:限定仅在表尾进行插入和删除操作的线性表。特点:LIFO(last in first out)后进先出。就像手枪压子弹一样,最后压入的子弹最早出来。顺序结构定义typedef int SElemType; /* SElemType类型根据实际情况而定,这里假设为int *//* 顺序栈结构 */typedef struct{ SElemType data[MAXSIZE]; int top; /* 用于栈顶指针 */}SqStack;初始化

2021-09-16 00:28:24 92

计算机网络和LWIP的思维导图

包含:OSI七层模型、TCP/IP四层模型、TCP、UDP、Socket、计算机网络基础

2022-02-13

数据结构与算法思维导图V1.0

数据结构与算法思维导图 包含:线性表、顺序结构、链式结构,栈与队列,串,二叉树、前中后序遍历,查找,排序

2022-02-13

c语言学习笔记百度脑图版本

1、自己整理的c语言知识思维导图。 2、百度脑图版本,只支持百度脑图打开,不需要下载软件,使用网页版即可。 内容包含: 数据类型、运算符号、指针、字符串、关键词、函数、伪指令、编译、内存这几个方面。 后续还会更新

2022-02-12

window vscode搭建stm32环境套装

make 3.81 openocd 20210729 msys2-x86_64-20210725 gcc-arm-none-eabi-10.3-2021.07-win32

2021-08-23

lv_sim_visual_studio-master.7z

lvgl github上的vs仿真demo。实验多次git 工具没有科学上网的情况下经常失败。下载做个备份

2021-08-18

FreeRTOS系统移植.zip

FreeRTOS系统移植,仅实现点灯,可以直接加功能

2021-04-07

FreeRTOSv202012.00.zip

FreeRTOS源码v202012.00

2021-04-06

空空如也

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

TA关注的人

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