- 博客(10)
- 收藏
- 关注
原创 FreeRTOS-TaskNotify
9.1本章介绍与范围已经看到,使用FreeRTOS的应用程序被构造为一组独立的任务,并且这些任务很可能必须彼此通信,以便它们可以共同提供有用的系统功能。通过中介对象进行通信本书已经描述了任务之间可以相互通信的各种方式。 到目前为止描述的方法需要创建通信对象。 通信对象的示例包括队列,事件组和各种不同类型的信号量。使用通信对象时,事件和数据不会直接发送到接收任务或接收ISR,而是会发送到通信对象。 同样,任务和ISR从通信对象接收事件和数据,而不是直接从发送事件或数据的任务或ISR接收...
2022-04-07 09:59:00
2751
原创 PID算法在STM32上的实现
PID调节算法在STM32上的实现(一)PID控制算法(P:比例 I:积分 D:微分)(二)首先先说明原理,使用的是数字PID算法,模拟PID算法在计算机这样的系统中是不能够直接使用的,数字PID算法又分为位置式PID控制算法和增量式PID控制算法,那么下面从原理上说明这两种算法(三)原理分析如图(四)从上面图中我们可以得到定义定义变量用户设定值: SV当前值(实际值): PV偏差: E = SV - PV(五)如果我们在一段时间内就从传感器读取一个值,那么我..
2021-11-16 08:32:56
13854
7
转载 stm32+lwip(三):TCP测试
我是卓波,很高兴你来看我的博客。系列文章:stm32+lwip(一):使用STM32CubeMX生成项目stm32+lwip(二):UDP测试stm32+lwip(三):TCP测试stm32+lwip(四):网页服务器测试stm32+lwip(五):以太网帧发送测试ST官方有lwip的例程,下载地址如下:STSW-STM32070 - LwIP TCP/IP stack demonstration for STM32F4x7 microcontrollers (AN3
2021-11-16 08:32:17
2075
1
转载 stm32+lwip(二):UDP测试
系列文章:stm32+lwip(一):使用STM32CubeMX生成项目stm32+lwip(二):UDP测试stm32+lwip(三):TCP测试stm32+lwip(四):网页服务器测试stm32+lwip(五):以太网帧发送测试ST官方有lwip的例程,下载地址如下:STSW-STM32070 - LwIP TCP/IP stack demonstration for STM32F4x7 microcontrollers (AN3966) - STMicroelectr
2021-11-16 08:30:57
2917
转载 stm32+lwip(一):使用STM32CubeMX生成项目
STM32CubeMX是一个图形化的配置工具,根据用户配置可以生成相应的代码,可以帮助开发人员摆脱部分底层开发的烦恼。一、工程配置本项目使用stm32407开发板,phy芯片为LAN8720A,硬件原理图如下:根据原理图,STM32CubeMX配置如下:1:选择外部晶振2:选择烧写方式和时基3:选择调试串口4:选择PHY接口5:选择LWIP6:配置时钟7:调试串口配置8:以太...
2021-11-16 08:29:22
784
原创 hex文件格式解析
hex文件格式hex文件格式是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式有很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。中文名hex文件格式所属学科计算机Hex文件格式解析Hex文件如果用特殊的程序来查看(一般记事本就可以实现)。打开后可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容:例如::020000040000FA , 我把它看
2021-11-10 16:29:14
3210
转载 程序的内存分配
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静
2021-11-08 09:35:14
3053
原创 关于堆栈的讲解
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静
2021-08-16 11:23:26
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人