自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt开发(二)打包发布

注意qt6生成的exe不能再win7(包含win7)以下运行。

2024-04-24 19:41:45 320

原创 Qt开发(一)环境搭建

本文是针对windows下搭建qt6。

2024-04-24 16:44:31 291

原创 关于无线充电项目总结IP6826

支持PD3.0 5-15W。

2024-04-14 16:50:25 194

原创 关于用sw打开step文件注意事项

第二步:找到“默认模板”选项,分别为零件、装配体、工程图选择默认模, 记住,每一个都要选择一遍,即使已经存在了也需要重新选择。选择完之后点击确定。第三步:选择总是使用这些默认的文件模板,点击确定,保存。这一步也很重要,千万不要忘记了。第一步:打开你的Solidworks软件,找到“选项”这个按钮,点击进去。关于solidworks解决step打开弹窗不断问题。step203 标准不具有颜色。step214 有颜色。

2024-04-09 14:52:35 235

原创 C库函数-getopt函数总结学习

getopt函数是命令行参数解析函数。

2024-03-13 22:22:39 714

原创 IM6ULL学习总结(四-七-1)输入系统应用编程

作为应用开发人员,可以只基于 API 使用输入子系统。但是了解内核中输入子系统的框架、了解数据流程,有助于解决开发过程中碰到的硬件问题、驱动问题输入系统框架如图 7.1 所示:用户空间:指的是APP层也就是我们所说的应用层。APP可以直接访问驱动节点,也可通过库来访问输入系统事件层:是给APP层提供访问接口输入系统核心层:接受来自底层的事件输入系统驱动层:硬件驱动层直接从硬件获取数据然后将数据转换成为事件上报。

2024-03-09 23:30:30 1022

原创 #stm32外设总结电容触摸按键

BS8116A-3IRQ 外部中断请求 NMOS输出内部上拉SCLSDA IIC通信接口VDD 供电电压2.2-5.5VCt电容: 0~25 pF电容越大灵敏度越低。

2024-03-08 18:38:55 482

原创 #stm32驱动外设模块总结w5500模块

这里注意配置 设置为全双工模式、主机SPI、8为数据模式、工作模式0 片选由外部引脚管理,设置预分频值为2 、高位先行、CRC多项式为7 使能SPI。

2024-03-07 20:17:47 842

原创 #stm32学习总结GPIO

1,不同型号,IO口数量可能不一样,可通过选型手册快速查询2,快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)3,每个IO口都可以做中断4,支持8种工作模式F1系列IO端口基本结构① 保护二极管② 内部上拉、下拉电阻③ 施密特触发器④ P-MOS & N-MOS管施密特触发器简介施密特触发器就是一种整形电路,可以将非标准方波,整形成方波特点:当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;

2024-03-05 19:38:27 1046

原创 stm32学习总结(三十一)ADC实验

⚫ ADC 控制寄存器 2(ADC_CR2)该寄存器我们针对性的介绍一些位:ADON 位用于开关 AD 转换器。而 CONT 位用于设置是否进行连续转换,我们使用单次转换,所以 CONT 位必须为 0。CAL 和 RSTCAL 用于 AD 校准。ALIGN 用于设置数据对齐,我们使用右对齐,所以该位设置为 0。EXTSEL[3:0]用于选择启动规则转换组转换的外部事件,我们这里使用的是软件触发(SWSTART),所以这里设置这3 位为 111。

2024-02-29 20:25:15 1057

原创 #stm学习总结 (二十八)硬件随机数实验

STM32F407 自带了硬件随机数发生器(RNG),RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数。

2024-02-29 19:33:40 464

原创 stm32学习总结 FMC 驱动LCD

Liquid Crystal Display,即液晶显示器,由:玻璃基板、背光、驱动IC等组成全彩LCD,是一种全彩显示屏(RGB565、RGB888),可以显示各种颜色1,低成本:低至几块钱的价格2,高解析度 :可高达500ppi的解析度,显示细腻PPI(Pixels Per Inch)[4],从字面意思理解就是每英寸像素,也可以理解为屏幕像素密度,因为像素并没有固定的大小,所以,PPI 越高,像素大小越小,也就越清晰。

2024-02-21 15:28:10 1267

原创 freeRTOS总结(十五)软件定时

const char * pcTimerName /* 软件定时器名字 */ListItem_t xTimerListItem /* 软件定时器列表项 *//* 软件定时器的周期 */void * pvTimerID /* 软件定时器的ID *//* 软件定时器的回调函数 */#if。

2024-02-07 21:19:03 1052

原创 freeRTOS总结(十四)任务通知

任务通知API函数主要有两类:①发送通知 ,②接收通知。注意:发送通知API函数可以用于任务和中断服务函数中;接收通知API函数只能用在任务中。eNoAction = 0, /* 无操作 */eSetBits /* 更新指定bit */eIncrement /* 通知值加一 */eSetValueWithOverwrite /* 覆写的方式更新通知值 */eSetValueWithoutOverwrite /* 不覆写通知值 */

2024-02-07 18:00:59 1034

原创 传感器类总结(一)MPU9250 3-2程序关于IIC的底层程序

关于IIC的逻辑和底层协议可以看之前总结的。

2024-01-31 19:02:07 1249

原创 传感器类总结(一)MPU9250 3程序

上述代码我们实现了MPU9250的初始化1、设置地址2、初始化IIC控制引脚设置为推完输出3、复位92504、设置参数:1、带宽是指的传感器对待测量信号的响应,比如带宽过宽对高频信号也进行测量,传感器响应速度快(延时低),但是会测量到高频干扰。如果带宽窄会滤波高频信号那么响应速度也相应降低。2、这里的FCHOICE[1:0]和下面的Fchoice_b[1:0]是一个位。上面我们配置陀螺仪的量程范围时,已经设置过这个寄存器了。

2024-01-31 15:51:49 494

原创 freeRTOS总结(十三)事件标志组

动态方式创建事件标志组API函数清除事件标志位API函数设置事件标志位API函数等待事件标志位API函数特点:可以等待某一位、也可以等待多位等到期望的事件后,还可以清除某些位同步函数例子:Task1:做饭Task2:做菜Task1做好自己的事之后,需要等待菜也做好,大家在一起吃饭。特点:同步!

2024-01-30 17:38:47 514

原创 freeRTOS总结(十二)队列集

用于创建队列集往队列集中添加队列此函数用于往队列集中添加队列,要注意的时,队列在被添加到队列集之前,队列中不能有有效的消息(也就是说我们创建好的队列和信号量里面不能有值,才能将该队列放入到队列集中。用于从队列集中移除队列用于在任务中获取队列集中有有效消息的队列此函数用于在任务中获取队列集中有有效消息的队列。

2024-01-30 16:33:26 419

原创 freeRTOS总结(十一)信号量

优先级翻转:高优先级的任务反而慢执行,低优先级的任务反而优先执行优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未知的严重后果。在使用二值信号量的时候,经常会遇到优先级翻转的问题。高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度。但其他中等优先级的任务却能抢到CPU资源。从现象上看,就像是中优先级的任务比高优先级任务具有更高的优先权(即优先级翻转)

2024-01-30 10:09:37 747

原创 freeRTOS总结(十)消息 队列

int8_t * pcHead /* 存储区域的起始地址 *//* 下一个写入的位置 */union} u;/* 等待发送列表 *//* 等待接收列表 *//* 非空闲队列项目的数量 *//* 队列长度 *//* 队列项目的大小 *//* 读取上锁计数器 *//* 写入上锁计数器 *//* 其他的一些条件编译 */} xQUEUE;补充知识union是一种特殊的数据结构,它允许在同一内存位置存储不同类型的数据。

2024-01-25 17:09:47 990

原创 freeRTOS总结(九)时间管理

相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务(1)为任务主体,也就是任务真正要做的工作(2)是任务函数中调用vTaskDelayUntil()对任务进行延时(3)为其他任务在运行。

2024-01-24 19:14:01 384

原创 freeRTOS总结(八)任务相关API函数

此函数用于获取指定任务的任务优先级,使用该函数需将宏 INCLUDE_uxTaskPriorityGet 置 1。

2024-01-24 19:02:42 1064

原创 freeRTOS总结(六)列表及列表项

迷你列表项也是列表项,但迷你列表项仅用于标记列表的末尾和挂载其他插入列表中的列表项。

2024-01-22 15:22:58 1284

原创 智能小车(八)ros实现将智能小车数据通过TCP/IP发送到上位机网关

在给定的代码中,*list_send 使用解包运算符 * 将列表 list_send 中的元素作为单独的参数传递给 struct.pack 函数。如果列表 list_send 包含三个元素 [1, 2, 3],那么 *list_send 将被解包为 1, 2, 3。没有用struct.pack进行字节流打包,原因是不同平台,字节流的打包浮点型数据不一样,又要加上包头等校验信息,所以这里分别用单字节保存在列表中,然后sock.sendall(struct.pack(“B”*len(list_send),

2024-01-18 17:21:02 628

原创 智能小车项目(七)通过PID实现给定和实际速度值计算PWM输出

我们先看大脑(上位机nano)keybord_ctrl节点发布’cmd_vel’消息消息类型为Twist队列大小为1driver_node订阅这个消息 当有消息时cmd_vel_callback回掉函数处理消息调用set_car_motion处理消息再看小脑(下位机32)下位机接到串口消息进行速度处理Motion_Ctrl通过公式计算每个轮子的速度调用Mecanum_Ctrl函数处理速度调用Motion_Set_Speed设置给定速度到motor_data结构体中将目标速度给入pid

2024-01-12 14:50:10 522

原创 im6ull学习总结(三-五)freetype显示正行字

这里笛卡尔坐标系就是初高中学的直角坐标系的第一象限lcd坐标系则不同观察两个坐标系 点(x,y)的x坐标在两个坐标系中相同,纵坐标(y)存在着y+V-y=V V是整个屏幕的行数的像素点。

2024-01-11 23:11:55 1232

原创 freeRTOS总结(五)临界段代码保护

FreeRTOS 在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再打开中断终端 任务切换 任务切换是在pendsv中断中实现的他也会被关闭进入临界代码段先关闭中断任务级的… … /* 临界区 */中断级的中断的这个进入临界代码断有一个返回值,目的是保存当前中断位置,等退出时恢复到当前中断继续运行。… … /* 临界区 */

2024-01-11 19:25:31 482

原创 freeRTOS总结(四)中断管理

打断CPU正常运行程序,转而处理紧急的事件(中断服务函数)。中断执行机制3步1、中断请求2、响应中断3、退出中断。

2024-01-11 18:42:30 1011

原创 im6ull学习总结(三-4)freetype显示单个字体

1、初始化:FT_InitFreetype2、加载(打开)字体 Face:FT_New_Face3、设置字体大小:FT_Set_Char_Sizes 或FT_Set_Pixel_Sizes4、选择 charmap:FT_Select_Charmap5、根据编码值 charcode 找到 glyph_index:glyph_index = FT_Get_Char_Index(face,charcode)

2024-01-10 22:50:01 1265

原创 freeRTOS总结(三)任务挂起和恢复

xTaskToSuspend 待挂起任务的任务句柄此函数用于挂起任务,使用时需将宏 INCLUDE_vTaskSuspend 配置为 1。无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复。注意:当传入的参数为NULL,则代表挂起任务自身(当前正在运行的任务)xTaskToResume 待恢复任务的任务句柄使用该函数注意宏:INCLUDE_vTaskSuspend必须定义为 1。

2024-01-09 20:20:57 423

原创 FreeRTOS学习总结(二)FreeRTOS任务创建和删除API函数

*2、空闲任务会负责释放被删除任务中由系统分配的内存(针对动态创建),(这里注意在task1中删除task1任务则在空闲任务中释放内存,如果删除task2则立马在task1中释放)。(针对静态)但是由用户在任务删除前申请的内存, 则需要由用户在任务被删除前提前释放否则将导致内存泄露 **空闲任务是必须的软件定时器任务可选,如果都创建都需要提供堆栈和任务控制块的存储空间。实验设计:将设计四个任务:start_task、task1、task2、task3。任务1 实现LED0每500ms闪烁一次。

2024-01-08 20:29:18 658

原创 关于一个热成像仪的总结(一)硬件篇电源电路

电源部分电路原理是这样的通过3.7V的锂电池供电,用Type-C选用TP4056作为充电电路给电池充电。使用MP2161开关电源作为5转3.3V 电源为MCU供电。

2024-01-07 10:42:39 560

原创 im6ull学习总结(三-3)freetype

FreeType是一个开源的字体渲染引擎,主要用于将字体文件转换为位图或矢量图形,并在屏幕上渲染出高质量的字体。它提供了一组API,使开发者能够在自己的应用程序中使用和呈现字体。FreeType最初是作为一个独立项目开发的,后来成为许多其他开源软件的重要组成部分,例如GNU Image Manipulation Program(GIMP)、Ghostscript、LibreOffice等。它也被广泛应用于操作系统中,用于在屏幕上显示和打印文本。

2024-01-06 20:53:05 1122

原创 关于keil下载程序报错问题

将下载速率调到200k(降低下载速率即可)JLINK能识别到芯片但是不能下载。

2024-01-06 15:57:37 384

原创 im6ull学习总结(三-2)文字显示中文字符

承接上篇文章使用点阵字库时,中文字符的显示原理跟 ASCII 字符是一样的。要注意的地方在于中文的编码:在 C 源文件中它的编码方式是 GB2312 还是 UTF-8?编译出的可执行程序,其中的汉字编码方式是 GB2312 还是 UTF-8?这里注意两点一是源文件编码凡是二是编译的可执行程序中字符的编码方式注意:一般不会使用 UTF-16 的编码方式,在这种方式下 ASCII 字符也是用 2 字节来表示,而其中一个字节是 0,但是在 C 语言中 0 表示字符串的结束符,会引起误会。在编译程序过程中我们

2024-01-02 22:17:42 605

原创 im6ull学习总结(三)文字显示

一个字符以不同编码形式会保存为不同的二进制数。American Standard Code for Information Interchange”的缩写,美国信息交换标准代码。一个字节的 7 位就可以表示 128 个数值,在 ASCII 码中最高位永远是 0。ANSI是ASCII 的扩展,向下包含 ASCII。对于 ASCII 字符仍以一个字节来表示,对于非 ASCII 字符则使用 2 字节来表示。并没有固定的 ASNI 编码,它跟“本地化”(locale)密切相关。比如在中国大陆地区,ANSI 的默

2023-12-28 22:11:16 925

原创 im6ull学习总结(二)Framebuffer 应用编程

关于图像的帧指的是在图像处理中,一帧(Frame)是指图像序列中的单个静止图像。假设需要设置 LCD 中坐标(x,y)处像素的颜色,首要要找到这个像素对应的内存,然后根据它的 BPP 值设置颜色。framebuffer中包含LCD的参数,大小为LCD分辨率xbpp。对于 24BPP,硬件上为了方便处理,在 Framebuffer 中也是用 32 位来表示,效果跟 32BPP 是一样的。对于 32BPP,一般只设置其中的低 24 位,高 8 位表示透明度,一般的 LCD都不支持。

2023-12-27 22:29:44 1252

原创 FreeRTOS基础知识(一)任务调度

特点:1、 高优先级抢占低优先级2、高优先级任务不停止,低优先级无法运行3、被抢占的任务会进入就绪态举例阐述一下啊Task1 2 3 任务优先级分别为1 2 3 (freertos中数值越大优先级越越大)当Task1就绪Task2 Task3未就绪时Task1 被运行;当Task2 任务就绪后抢占Task1 Task1 变为就绪态;当Task3 就绪后 抢占Task2 Task2变为就绪态;当Task3阻塞时Task2就绪被运行;当Task3 阻塞时间到 抢占Task2。

2023-12-27 20:09:08 931

原创 im6ull学习归纳总结(一)APP——04_文件IO

如图所示文件可以是1真实文件保存在设备上2内核提供的虚拟文件3设备节点。

2023-12-21 22:20:48 92

原创 关于jetson nano 配置VNC远程桌面,已经实现!!!

1.执行更新2.安装vino服务端这个vino服务端我使用的镜像文件是安装好了的,但是早版的镜像文件可能没有,所以可以执行下代码看看是否有安装。3.开启VNC 服务4.配置VNC服务5.编辑org.gnome用于恢复丢失的“enabled”参数,用于vnc允许使用RFB 协议进行远程控制输入以下命令进入文件,将下方key内容添加到文件的最后面。保存并退出。添加的文件内容如下

2023-12-21 17:27:30 353

空空如也

空空如也

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

TA关注的人

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