自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 linux、windows 动态库与静态库的实现

在使用keil的时候遇到这样一个事情,我调用了一个函数,只有函数声明,但是我想查看函数的实现却不行,为什么会这样,这不来了嘛,我们在使用printf函数等,都是加上头文件直接调用,学校里并没有详细说这个函数的底层实现,以及动态库和静态库的概念可以理解为我写了一个通用的函数,我只希望别人使用我的函数接口,并不知道我的底层实现,那么我们可以将写的函数放在文件内编译成一个共享库。

2024-03-09 16:06:22 1110 1

原创 【vmware安装群晖】

vmware安装群晖

2024-02-28 21:20:25 464

原创 STM32软硬件CRC测速对比

软硬件CRC速度对比

2023-12-23 17:17:57 1711

原创 【STM32下载神坑】

使用STM32H750XB板载ST LINK,使用cubeprogrammer在烧写了 linux之后 无法使用任何软件烧写,共同点是都可以识别芯片。最后 最后,居然是ST LINK固件的问题,开始没有动过固件,咋就没用了,这是我万万没想到的。描述: MDK可以识别到芯片,但是死活下载不进去(不是什么低级的设置错误)最开始以为芯片有写保护,复位啥的全部试过了,该用的软件业全用了。使用cubeprogrammer更新固件就好了。

2023-10-07 23:27:46 133

原创 【MQTT接收数据写入数据库】

参考上一篇文章。

2023-09-06 10:10:06 5378 2

原创 【Ubuntu搭建MQTT Broker及面板+发布消息、订阅主题】

Ubuntu搭建MQTT Broker及面板+发布消息、订阅主题

2023-09-06 10:05:41 702

原创 读取SD卡图片bin文件显示LCD上

STM32H750XBH6 的flash只有128K,存储图片数组显然是不够的,使用sd卡存储图片的二进制bin文件,读取文件并显示在lcd上,这里不使用硬解码图片,还没有学习到,另外读取sd卡的bin文件还可以做一个简易bootloader,直接sd卡启动是吧,学习这部分还是有必要的以下分为两个部分进行,

2023-08-26 19:40:12 1085

原创 1.freertos应用系列之cubemx创建freertos

以上可以看出任务1任务2交替执行,但为了严谨需要对freertos时间片进行验证,看看时钟配置是否存在错误,freertos的时间轮转在默认配置下是1ms。生成工程之后编译下是否报错,无报错进行下一步,有报错大多都是有中文路径和中文名。最后编译完成就可以烧录了,烧录之前先连接好串口,打开串口软件。添加进去之后编译会报错,还需要在usart.h中添加头文件。如下,这里添加了一个串口打印并更改了阻塞时间20个心跳节拍。代码逻辑与示波器捕获到的时间一致,两个为互补信号。把以下代码添加进去usart.c中。

2023-03-22 21:44:57 486 1

原创 十一,FreeRTOS之——互斥信号量(优先级反转,优先级继承,递归锁)

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。互斥量理论实验一:互斥信号量基本使用调用函数创建互斥信号量打开宏开关创建任务实验仿真实验二:优先级反转实验实验描述实验仿真实验三:优先级继承实验仿真实验四:互斥量的缺陷(可由别人释放锁)实验概述实验仿真实验五:递归锁打开宏开关主函数创建递归信号量创建任务实验仿真互斥量理论实验一:互斥信号量基本使用互斥信号量本使用与二进制信号量无太大差别,二进制信号.

2021-10-03 17:36:22 1724 1

原创 十,FreeRTOS之——信号量

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。信号量理论信号量相关函数实验一:创建计数型信号量添加头文件创建任务句柄主函数中创建信号量释放信号量获取信号量实验仿真实验二:创建二进制号量创建任务句柄主函数中创建二值信号量获取信号量与释放信号量实验仿真信号量理论转:二进制信号量与计数型信号量信号量相关函数实验一:创建计数型信号量添加头文件创建任务句柄主函数中创建信号量释放.

2021-10-03 11:20:50 778 1

原创 环形缓冲区(1)

声明:参考韦东山视频教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。环形缓冲区环形缓冲区的几个基本操作申请内存空间写操作读操作环形缓冲区小结判断缓冲区是否为空判断缓冲区是否写满为什么要使用环形缓冲区?认识环形缓冲区以及实现原理1环形缓冲区实现原理2再来认识一下环形缓冲区环形缓冲区环形缓冲区总结避免频繁的内存创建取消、分配。内存一直只用了一块在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供.

2021-09-30 09:37:16 728 1

原创 九,FreeRTOS之——空闲任务钩子函数

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。空闲任务钩子函数实验一:不断创建任务圈重点实验二:不断创建任务实验三:让优先级为0的任务也可以执行实验四:空闲任务钩子函数运行钩子函数前提条件:空闲任务钩子函数转:空闲任务钩子函数详解注:在使空闲任务钩子函数时也会占用cpu资源,应该合理使用空闲任务钩子函数实验一:不断创建任务圈重点首先创建了一个任务 Flag1_Task任务一创建了Flag.

2021-09-27 21:58:49 2170

原创 Arduino各模块资料

arduino UNO开发板实验使用Arduino uno板各模块测试实验源码,实验所需要的库需要自己添加,搁置久了,整理出来的。git下载链接:https://gitee.com/he-dejiang/arduino.git

2021-09-27 18:29:12 785

原创 ESP8266组网+STM32数据传输项目

ESP8266+STM32数据传输项目实验硬件:项目关键词:项目描述项目涉及知识:1.ESP8266开发2.MQTT协议3.STM32整体开发流程:实验硬件:ESP8266 nodemcuESP01SDHT11杜邦线若干项目关键词:ESP8266多设备组网web配网mqtt协议stm32数据处理项目描述使用两块ESP8266通过MQTT协议组网并实现数据传输,ESP8266nodemcu采集传感器数据并发送至ESP01s,ESP01s将接收到的信息通过串口打印,STM3.

2021-09-27 16:53:03 3264

原创 八,FreeRTOS之——队列集

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。队列集实验一:队列集---传送数据实验描述:圈重点仿真效果队列集转:队列集概述队列知道是什么,那么队列集呢,没错就是套娃,队列集里面是队列。看看代码就懂了,实验一:队列集—传送数据/** FreeRTOS v9.0.0 + STM32 动态创建任务 实验平台:韦东山 STM32F103ZE开发板 **/ #include "FreeRTOS.

2021-09-26 21:11:35 1446 1

原创 七,FreeRTOS之——队列同步与互斥

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。转:同步与互斥概念理解link实验一:同步实验代码划重点创建队列任务句柄,在这之前得要加入队列头文件创建队列函数各任务处理事件实验二:互斥实验代码划重点转:同步与互斥概念理解link实验一:同步还是来看看同步实验怎么做吧实验代码/** FreeRTOS v9.0.0 + STM32 动态创建任务 实验平台:韦东山 STM32F103ZE开.

2021-09-26 17:04:00 1929

原创 六,FreeRTOS之——临界资源访问

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。临界资源访问临界区资源保护实验实验一实验二临界资源访问转:临界资源访问1转:临界资源访问2阅读以上两篇文章大概就知道临界资源访问是个啥了,临界区的资源会被有效保护。进入临界区taskENTER_CRITICAL()taskENTER_CRITICAL_FROM_ISR() //用于中断退出临界区taskEXIT_CRITICAL()taskEXIT_.

2021-09-25 21:23:37 343

原创 五,FreeRTOS之——相对延时与绝对延时

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。转:大佬的理解我的理解:如图,相对延时是任务运行之后进入阻塞状态的时间,图中tick1与tick2所示绝对延时是任务开始运行到下一次开始运行的整个过程,如图tick3与tick4所示相对延时函数已经比较熟悉了,就是我们用的vTaskDelay();绝对延时的函数怎么样的呢???绝对延时函数为:vTaskDelayUntil();绝对延时函数里面还有两个参数.

2021-09-25 17:34:29 1711

原创 四,FreeRTOS之——任务调度

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。FreeRTOS任务调度任务的删除实验一:实验二:实验三:任务的挂起与恢复实验四:任务删除总结总结:一个任务可以自杀,杀别人,被别人杀,任务的删除可以调用自己的任务句柄,也可以传输参数NULL(仅限自杀,自杀可以多一种选择,哈哈),低优先级的任务可以杀高优先级的任务任务的挂起与恢复总结:任务的挂起与恢复,任务挂起同任务删除一样,任务可以挂起自己,也可以挂起别人,也可以被别人.

2021-09-24 22:03:24 1179

原创 三,FreeRTOS之——动态创建多任务+优先级

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。动态创建多任务+优先级(一)实验一实验二实验三实验四实验五实验总结:1.同级优先级任务采用时间片轮转调度,轮转时间可调2.高优先级任务具有优先执行权限,低优先级任务只有等高优先级阻塞或者主动放弃cpu资源才可以执行3. 高优先级具有抢占作用动态创建多任务+优先级(一)在各类RTOS中,因为有中断优先级,和时间片轮转调度,所以才具有实时性优先级是RTOS的重点,一起看.

2021-09-24 18:20:31 2773 5

原创 二,FreeRTOS之——动态创建单任务+软件仿真调试

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。动态创建单任务+软件仿真调试动态创建单任务+软件仿真调试上一节我们移植好了模板,这一节来看看创建动态任务,直接上代码/** FreeRTOS v9.0.0 + STM32 动态创建任务 实验平台:韦东山 STM32F103ZE开发板 **/ #include "FreeRTOS.h"#include "task.h"/* 开发板硬件bsp头文.

2021-09-24 15:06:10 729

原创 一,FreeRTOS之——三分钟移植

声明:本专栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。三分钟移植FreeRTOS到STM32MCU上1.为什么使用FreeRTOS2.精剪源码结构`1:)只保留了FreeRTOS文件``2:)打开FreeRTOS文件继续删``4:)别急,还要继续删``5:)倒数第二部``6:)最后一步了`3.开始移植1)找个标准库的示例,推荐野火带串口的demo,个人感觉野火的比正点原子的好移植2)找个动态创建任务的例子,这里同样也拿野火的3.

2021-09-24 13:12:40 927

原创 MDK中变量无法添加到逻辑分析仪中原因

MDK中变量无法添加到逻辑分析仪中原因解决方法去掉static提示无法将变量添加到逻辑分析仪中解决方法去掉static设置为bit全速运行

2021-09-16 15:33:28 2289 2

原创 FreeRTOS之——链表

链表什么是链表???单链表(最基本链表结构)循环链表双向循环链表链表的插入链表的删除链表插入与删除代码实现1)定义节点和链表2)初始化节点和链表3)链表的插入4)链表的删除在FreeRTOS中链表的表示list.h 中节点的定义链表的定义list.c中链表初始化节点的初始化节点插入链表链表删除节点什么是链表???可以结合数组来看,链表和数组差不多,数组是连续存储,不能动态扩展,删除,链表:可以把零散的空余空间串联起来,内存利用率高,有数据增加就串联更多的空间,有数据减少就删除多余的空间链表由.

2021-09-03 11:46:42 2166

原创 MDK编译过程

mdk编译过程编译:链接:下载,在使用stm32的时候,基本上都会用到mdk,而编译仅仅只需要一个按钮,实际上编译过程是比较繁琐的,在使用linux对文件编译时候就得自己写makefile了,了解下编译的过程有助于更好的进阶linux。编译:在工程中存在的.c文件和.s文件是由我们自己编写的(.s官方提供),我们把自己编写的文件也称为源文件,也叫作源代码,通过编译器,.c文件使用armcc编译器 .s文件使用armasm编译器 编译成对象代码.o文件其内容主要是从源文件编译得到的机.

2021-08-06 09:40:01 315

原创 i.max6ull裸机开发之C语言点灯篇

i.max6ull裸机开发之C语言点灯篇i.max6ull的汇编文件1,时钟2,IO复用3,电气属性4,io功能STM32使用寄存器开发程序是如何执行的,i.max6ull的汇编文件.global __start__start: /*设置处理器进入svc模式下*/ mrs r0, cpsr /*读取cpsr到r0*/ bic r0, r0, #0x1f /*清除cpsr的bit4-0*/ orr r0, r0, #0x13 /*使.

2021-07-26 21:58:51 277

原创 i.max6ull裸机开发之汇编点灯篇(二)

烧写篇1:arm-linux-gnueabihf-gcc -g -c led.s -o led.o2:arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf3:arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin4:arm-linux-gnueabihf-objdump -D led.elf > led.dis5. ./imxdownload led.bin /dev/sdd.

2021-07-25 23:42:10 151

原创 i.max6ull裸机开发之汇编点灯篇(一)

汇编点灯1,类比一,原理图提取信息:二,时钟提取信息:三,IO复用提取信息四,电气属性提取信息电气属性配置技巧五,配置io功能提取信息====================== 分隔线 ===================1.配置时钟2.设置GPIO复用3.电气属性4.配置io功能5.打开LED完整的汇编1,类比STM32的点灯操作是如何进行的???1,看原理图,了解所要操作哪个组的哪个IO,高电平点亮还是低电平点亮如果用库函数来操作流程:2,配置时钟APB1/APB2/AHB1/AHB2.

2021-07-25 22:52:18 265

原创 无线控制小车项目模块(三)

基于esp8266无线控制模块应用:MQTT发布主题智能wifi小车项目说明:使用两块esp8266建立通信,加入了mqtt协议,esp8266发送方通过按键发布信息(手柄作用)esp8266作为接收方,接收订阅主题所发来的信息并通过串口打印数据,stm32作为主控,控制两个车轮的前进后退,左转右转,并做好串口接收的执行功能完整项目分为三个模块1,esp8266发送方(用于控制小车) 类似遥控装置跳转链接2,esp8266接收方(接收发送方的消息) 类似接收装置跳转链接3.

2021-07-24 14:45:34 1496

原创 无线控制小车项目模块(二)

基于esp8266无线控制模块应用:MQTT订阅主题智能wifi小车项目说明:使用两块esp8266建立通信,加入了mqtt协议,esp8266发送方通过按键发布信息(手柄作用)esp8266作为接收方,接收订阅主题所发来的信息并通过串口打印数据,stm32作为主控,控制两个车轮的前进后退,左转右转,并做好串口接收的执行功能完整项目分为三个模块1,esp8266发送方(用于控制小车) 类似遥控装置2,esp8266接收方(接收发送方的消息) 类似接收装置3.主控方(stm.

2021-07-24 13:47:54 366

原创 无线控制小车项目模块(一)

基于esp8266无线控制模块应用:MQTT发布主题示例代码如下智能wifi小车项目说明:使用两块esp8266建立通信,加入了mqtt协议,esp8266发送方通过按键发布信息(手柄作用)esp8266作为接收方,接收订阅主题所发来的信息并通过串口打印数据,stm32作为主控,控制两个车轮的前进后退,左转右转,并做好串口接收的执行功能完整项目分为三个模块1,esp8266发送方(用于控制小车) 类似遥控装置2,esp8266接收方(接收发送方的消息) 类似接收装置3.主.

2021-07-24 13:22:08 912

原创 msp432p401整理示例程序

软件环境ccs,每一个小实验备注了说明,其他环境(keil5/IAR等等)可拷贝BSP加入自己工程中包含基本的io输入输出,滴答定时器,串口实验,ADC实验,定时器功能实验。部分代码展示如下uart.c中#include <uart.h> // 0117 /*=================================UART结构体参数配置(9600)====================================*//*注:波特率的设置与时钟频率有关,这里

2021-07-11 16:30:23 1802

原创 msp432功能(一)定时功能

void timer_count_Init(void){ /* Starting and enabling ACLK (32kHz) 时钟频率*/ CS_setReferenceOscillatorFrequency(CS_REFO_128KHZ); CS_initClockSignal(CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_4);//分频 /* Configuring Continuous

2021-07-07 15:23:49 1281

原创 MSP432UART波特率与时钟关系

MSP432波特率与时钟频率对应关系msp432在进行串口通讯时,都会进行波特率的设置,在MSP432中如何快速设置波特率??1.首先确定时钟频率2.串口配置参数结构体设置msp432在进行串口通讯时,都会进行波特率的设置,在MSP432中如何快速设置波特率??1.首先确定时钟频率下面是可选项(一般选用12MHZ/24MHZ)2.串口配置参数结构体设置最主要设置这三项这是如何计算来的???这里直接打开应用技术手册905页,可以看到以下两张表在这里插入图片描述这里可以看到在.

2021-07-07 09:22:07 2376

原创 第十届蓝桥杯嵌入式(省赛)程序题

第十届蓝桥杯(省赛)程序设计解读:参照第七届蓝桥杯省赛设计思路陈述:(一步一步来,做大做强,再创辉煌)各模块程序设计:LCDKeySysTick_Handler参数保存整体程序设计如下:解读:参照第七届蓝桥杯省赛设计第七届蓝桥杯嵌入式省赛link多读任务要求,多读任务要求,多读任务要求,需要用到哪些外设?功能如何设计?这两届的省赛差别不大(客观上来说这届的更简单)第七届是采集R37模拟电压,设置阈值(按键可调),液位等级实时显示,i2c总线上的AT24C02保存第十届是采集R.

2021-07-01 13:23:24 1061

原创 第七届蓝桥杯嵌入式(国赛)程序题

第七届蓝桥杯(国赛)解读+程序任务书:分析:大体流程1.LCD显示2.实时时钟3.ADC采集(模拟温度)4.定时器输出比较(可调频率),输入捕获(模拟湿度)5.按键功能+采样周期+设置参数存储6.串口功能+存储7.报警功能程序整体设计完整工程下载任务书:先多读几遍任务书要求,需要用到哪些外设?需要实现哪些功能?各功之间如何较好的关联?分析:任务书中自我感觉有两个稍废时间的功能,1.湿度的采集2,保存六十组数据并更新 后面重点讲解大体流程1.LCD显示2.实时时钟3.AD.

2021-06-26 12:56:37 1543

原创 uCOSIII系统移植(二)构建多任务

uCOSIII构建多任务LED.CF407时钟挂载LED.H(宏定义狂魔)APP.C完整工程下载上一节移植构建了模板和创建了单任务,这一节来构建多任务uCOSIII系统移植(一)构建单任务任务要求:构建三个任务(两个LED,一个BUZ)参考野火的移植,(我的板子与野火的不同,所以需要做些更改)原理图:最下面的蓝灯是电源指示灯,LED0和LED1依据原理图低电平点亮(所以我们在初始化的时候要把这两个LED对应的引脚设置为高电平)BEEP我们依据原理图,初始化设置为低电平(高电平工作).

2021-06-08 19:11:07 799 1

原创 uCOSIII系统移植(一)构建单任务

uCOSIII系统移植 模板构建+单任务操作源码构建模板文件1.首先有一个能够点灯的工程(这是我的工程结构)2.在点灯工程根目录下创建一个文件夹放ucos的源码(我的是User)3.在User文件夹下新建源码分区的文件夹(如下)4.向构建好的文件夹中添加源码5.打开工程文件,构建结构目录并添加对应文件6.添加路径单任务构建:(1)构建初始化函数2. APP.C代码规范完整工程下载源码构建模板文件获取到官方源码之后打开可以得到这四个文件夹,按照野火的移植参考文档一步一步操作:大体流程如下:.

2021-06-06 19:45:25 544 2

原创 STM32 RS232通信实验

stm32F103 RS232通信实验什么是RS232?软件设计完整工程下载什么是RS232?先来看看UART传输所存在的问题于是就有了RS232协议这里注意使用的是负逻辑电平信号,在规定范围内的电平信号代表逻辑1或0,增加了抗干扰能力。(电平的转化由硬件设计,TTL信号转232信号,常用的芯片有ST3232ECTR,MAX3232)RS232能够弥补串口的一些不足,像传输距离,抗干扰能力,等都有提高。RS232存在的不足,于是就有了RS485(下一篇讲解)软件设计和串口.

2021-05-30 14:50:16 6805 3

原创 STM32 串口通信实验

stm32串口通信实验UART通信实验(通用异步收发器)UART串口通信原理:UART的通信过程实验功能:软件设计:完整工程下载实验器材:F103开发板 F407开发板 USB转RS232母线 USB转RS485线在F103环境下进行UART通信实验和RS232通信实验在F407环境下进行RS485实验(1.我的103板子没有485口,2.正好看下开发板环境不同的差异)UART通信实验(通用异步收发器)UART串口通信原理:什么是串行通信?什么是异步通信?什么是全双工?什么是串行.

2021-05-29 15:59:54 3370

空空如也

空空如也

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

TA关注的人

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