自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++通过例子理解封装、继承、多态(一)

定义一个protected类型的文件指针,用于指向open的文件,同时不允许类外访问该指针。核心部分的函数都是虚函数,在派生类中定义,通过调用父类的public函数来使用这些虚函数,在子类继承后,这些虚函数被重写,在不同的子类里有不同的定义。要求使用该文件基类派生出两种文件操作类:磁盘文件和内存文件,其中内存文件由链表构成,长度可动态增加。也是利用ftell函数,先记录当前指针,然后把指针移到文件最后,使用ftell即可获取文件长度。以读写方式打开文本文件,返回文件指针,文件必须存在,否则返回NULL。

2024-07-05 15:21:23 975

原创 关于linux读取显卡信息的方法-帧缓冲机制介绍

以上就是fb_fix_screeninfo结构体的内容,是不可更改的,里面的内容都是根据用户的硬件填充的,记录的是硬件的固定信息。fb_fix_screeninfo和fb_var_screeninfo,fb_fix_screeninfo记录的是设备固定参数,fb_var_screeninfo记录的则是虚拟参数,下面先看看两个结构体的内容。在内存中通常是独立的。表示像素的各个颜色分量(如红色、绿色、蓝色等)被分离地存放在不同的平面中,但这些平面在内存中的排列方式是交错的,而不是完全独立的。

2024-07-03 10:10:14 957

原创 关于linux捕捉鼠标事件的方法

data[1]、data[2]代表x与y的相对坐标,即本次鼠标移动与上次鼠标移动了多少坐标,向左则x为负,向下则y为负。如果事件的类型代码是EV_ REL,value的正数值和负数值分别代表两个不同方向的值。linux的设备都以文件形式存放,要读取鼠标,有两种方法,一种是通过/dev/input/mice,一种是通过/dev/input/eventx (x是标号,0,1,2..... 具体的进这个文件夹查看)。这里我的鼠标不支持读取相对坐标,因此鼠标只读取绝对坐标,注意滚轮事件属于相对事件。

2024-06-27 14:07:48 287

原创 关于使用gcc链接动态库时,依赖顺序导致“未定义的引用”错误

LoadString在动态库MiniGUI中定义,但MiniGUIRes的链接放在了前面,导致找不到LoadSrting的定义。/lib/libMiniGUI.so:对‘LoadString’未定义的引用。2.在gcc中加入选项 -Wl,--no-as-needed。注意,逗号也是选项的一部分!1.手动更换动态库链接顺序。

2024-06-17 18:37:35 99

原创 gcc编译出现最后的链结失败:输出不可表示的节

make[1]: 离开目录“/home/a/MiniGui1.6.9/mde-1.6.9/tools”从ubuntu16开始默认启用pie,但minigui1.6.9版本比较老不支持pie。/usr/bin/ld: 最后的链结失败: 输出不可表示的节。加入编译选项 -no-pie即可。

2024-05-15 17:08:53 269

原创 编译minigui1.6.9的示例程序包mde-1.6.9时出现 ”对QVFB_bootstrap未定义的引用“

仔细查找发现如果在Linux上使用qvfb开发minigui的话,需要在运行minigui源文件包libminigui-linux-1.6.9中的./configure时,将附加--with-targetname=qvfb。/usr/local/openSrc/minigui/install/lib/libminigui.so:对‘QVFB_bootstrap’未定义的引用。有可能是因为64位Ubuntu和32位Ubuntu之间环境的问题,具体参考以下。用了该博主的方法,问题仍未得到解决。

2024-05-15 15:31:10 391

原创 编译minigui1.6.9的mde示例包时报错 “对sem_post未定义的引用” 等错误

/usr/local/lib/libminigui.so:对‘pthread_create’未定义的引用。//usr/local/lib/libminigui.so:对‘pthread_join’未定义的引用。//usr/local/lib/libminigui.so:对‘sem_post’未定义的引用。//usr/local/lib/libminigui.so:对‘sem_wait’未定义的引用。//usr/local/lib/libminigui.so:对‘sem_init’未定义的引用。

2024-05-15 15:01:29 226

原创 ubuntu编译qt-x11-3.3.8时报错./include/qvaluelist.h:88:13: error: ‘ptrdiff_t’ does not name a type

在报错的文件中添加 #include <stddef.h>相对于新libc库的问题。

2024-05-15 10:36:16 302

原创 RTOS:任务的创建与删除

本次实验创建三个任务,start_task,led0_task,led1_task,分别作为启动任务,LED0以1s间隔闪烁、LED1以2s间隔闪烁。编写简单的RTOS代码,测试RTOS移植是否成功,同时学习RTOS中任务的创建与删除。若RTOS移植没有问题,则可观察LED0以1s间隔闪烁,LED1以2s间隔闪烁。

2023-03-16 14:54:39 209

原创 RTOS:CubeMX移植注意事项

移植完成后,编译会报错,提示缺少FreeRTOSConfig.h文件,此文件是对RTOS的功能进行裁剪和配置的重要文件,可以在 FreeRTOS/Demo/相应例程 内找到,但根据不同需要,需进行详细阅读。至此就可以快乐的学习RTOS啦。

2023-03-14 22:11:28 419

原创 RTOS学习笔记:RTOS基础知识

Task1运行完一个时间片后Task2运行,Task2运行一个时间片后Task3运行,若遇阻 塞,则直接跳到下一任务循环,不管有没有运行完。就绪列表:pxReadyTaskLists[x],其中x代表任务优先级数值,32位数组,当某个位置1 时,代表所对应的优先级就绪列表有任务存在。运行态:正在执行的任务,该任务就处于运行态,STM32中,同一时间仅一个任务 处于运行态。主要是针对优先级不同的任务,每个任务都有一个优先级,优先高的任务可以抢占 优先级低的任务。

2023-02-28 23:04:26 483

原创 RTOS学习笔记:RTOS入门及简介

FreeRTOS是一个免费的嵌入式实时操作系统。关于FreeRTOS学习资料。RTOS强调的是实时性。

2023-02-27 11:16:55 520

原创 蓝桥杯嵌入式 STM32G4 扩展板 DS18B20温度传感器

一、原理及引脚查阅扩展板引脚图跳线帽连接P4.6--P3.6(PA6)控制DS18B20为单线协议,对时序的要求较为苛刻。控制单个DS18B20的配置步骤如图1.初始化的时序图:主机首先发出一个480-960us的低电平脉冲(复位),然后释放总线为高电平,并在随后的480微秒时间内,对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。作为从机的Ds18B20上电后就一直检测总线上是否有480~960微秒的低

2022-05-22 14:35:49 1013

原创 蓝桥杯嵌入式 STM32G4 扩展板 ADC按键

一、模块引脚及原理原理图如下,使用ADC采集端口电压,每一个按键的阻值都不同,通过不同的电压判断是哪一个按键按下。(如何找到每一个按键的电压范围后面会讲)由图可知,ADC_KEY接PA5二、Cubemx的配置配置PA5为ADC2的通道13三、生成工程编写ADC获取函数如果想要知道每一个按键的转换值,使用LCD将读取的数据显示出来即可,用于后续按键的判断编写按键判断函数本质其实就是读电压,根据不同电压判断是哪个按键按下了...

2022-05-22 14:27:44 388

原创 蓝桥杯嵌入式 STM32G4 扩展板 光敏电阻

一、光敏电阻AO/DOAO是模拟量 DO是数字量AO接PA4 DO接PA3,使用ADC读取AO口电压,使用GPIO读取DO口电平光敏电阻随光照增强,阻值降低 则AO口的电压也降低。使用ADC采集AO端口电压即可。二、Cubemx的配置如图配置三、生成工程第一步:编写ADC采集函数第二步;在主函数的while里编写如下程序,在LCD上显示AO口电压以及DO口电平状态...

2022-05-22 14:20:53 578

原创 蓝桥杯嵌入式 STM32G4 MCP4017可编程电阻

MCP4017为可编程电阻查阅产品手册可知,MCP4017使用I2C通讯协议,引脚为PB6,PB7 ,控制的电阻连接至PB14,同时跳线帽连接J15.1与J15.2如下图,Rs为单个电阻阻值;RWS为总阻值,与R17串联,两者对VDD电压进行分压,可以通过测量PB14的电压判断可编程电阻的阻值。MCP4017的默认总阻值为100kΩ ,对应0-127个档位,当寄存器为0时,阻值为0;当寄存器为0x7F时阻值为100k。代码编写查阅MCP4017手册,写操作如图..

2022-04-23 15:26:29 3463 3

原创 STM32G4 蓝桥杯嵌入式 定时中断 定时器基础定时

本节对定时器的定时作用做介绍。下面是CubeMX的定时器配置:1.使用微控制器内部时钟2.设置预分频系数PSC和计数器ARR的值 (这两个值决定了定时器的频率)定时器时钟频率的计算:微控制器主频这里设置的是80MHz所以按上图,PSC = 79 ARR = 999计算得出定时器计数频率为1000Hz即定时中断每1ms触发一次使能中断:生成MDK工程文件后调用定时中断回调函数,定时器每产生一次中断都会运行一次此函数如果按照上述设...

2022-04-23 14:33:52 1008

原创 STM32G4 蓝桥杯嵌入式 IIC AT24C02储存器

此模块是我初次接触到数据手册,也是第一次接触到通讯协议,所以在b站录有视频,包括IIC的原理,以及在蓝桥杯竞赛板上实现对EEPROM的读写,感兴趣可移步:STM32G431 蓝桥杯嵌入式 AT24C02储存应用程序设计_哔哩哔哩_bilibili一、I2C通信协议简介 I2C 通信协议(inter-integrated circuit)因为使用引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)之间的通讯...

2022-04-16 16:20:23 3172

原创 STM32G4 蓝桥杯嵌入式 RTC

蓝桥杯实训平台板载RTC时钟,可以比较稳定的计算日期与时间,并且是STM32唯一可掉电继续工作的外设 (纽扣电池供电)。一、功能纯粹计时触发中断: 闹钟中断,用来产生一个软件可编程的闹钟中断。 秒中断,用来产生一个可编程的周期性中断信号(最快可达一秒)溢出中断,指示内部可编程计数器溢出并回转为0的状态。(一般不使用溢...

2022-04-16 15:57:24 570

原创 STM32G4 蓝桥杯嵌入式--串口

串口的简单定义: 串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。(百度百科)​​STMG431上的串口使用的是RS232进行串口通信,同时自带USB转串口。如图,设备左上角USB接口为数据传输口,一般代码的烧录是通过此接口下载,串口的通...

2022-03-10 17:25:56 1678

原创 蓝桥杯嵌入式 STM32G4 合集

省赛部分:STM32G4 蓝桥杯竞赛板 入门流水灯STM32G4 蓝桥杯竞赛板 外部中断按键处理按键的长按,短按,以及按键按下后不松开,只计算一次有效按下STM32G4 蓝桥杯竞赛板 LCDSTM32G4 蓝桥杯竞赛板 频率控制器STM32G4 蓝桥杯竞赛板 ADC及多通道采集(待更新)国赛部分:(待更新)省赛真题:(待更新)国赛真题:(待更新)...

2021-11-11 15:53:11 1232

原创 STM32G4 蓝桥杯嵌入式 ADC及多通道采集

ADC单通道采集ADC工作原理:ADC通过将模拟量转化为数字量,例如将连续的电压信号转化为离散的数字信号。查阅原理图可知,蓝桥杯竞赛板有两个模拟电压输出:R37与R37分别对应PB15与PB12CubeMX配置:配置PB15为ADC_IN15开启ADC2的通道15,其余配置均可默认。编写代码:uint16_t Get_ADC(void){ uint16_t temp = 0; HAL_ADC_Start(&hadc2); ..

2021-11-11 15:46:46 5103

原创 STM32G4 蓝桥杯嵌入式 LCD

板载一块分辨率320x240的LCD屏。蓝桥杯比赛使用LCD的操作非常简单原理:LCD原理较为复杂,底层驱动很麻烦,大致是控制屏幕上的像素点显示字符。但一般LCD购买时厂家自带LCD驱动,拿来直接用就可以,因为我们是搞嵌入式,不是LCD开发的。蓝桥杯比赛的时候也会提供LCD驱动。直接上手原理图:可以看到LCD使用的引脚非常多,PC0--PC15,PB5,PB8,PB9和PA0;CubeMX配置:按照原理图将引脚配置为GPIO_OUTPUT编程部分:.

2021-10-24 14:31:18 1113 5

原创 STM32G4 蓝桥杯嵌入式 定时器的输入捕获

板载频率控制器有两个,R39和R40,是板上的两个蓝色小旋钮(R37和R38是电压输出)原理:定时器输入捕获模式 捕获待测信号连续两个上升沿(或下降沿),在CRR计数器内计数,当系统时钟配置为80MHz时,将PSC设置为79,即80分频,CRR计数器以1MHz的速率进行计数。在第一个上升沿(或下降沿)出现时,CRR计数器被清零,第二个上升沿(或下降沿)出现时,记录该计数值并产生中断,在中断函数内即可读取该计数值。使用,计算频率,N为CRR计数值。注意,16位计数器的最高计数值为65.

2021-10-22 18:44:16 886

原创 按键的长按,短按,以及按键按下后不松开,只计算一次有效按下

判断按键长按还是短按,就需要引入时间的概念了。对于STM32G431RBT6这块板子来说,直接开启一个定时器用来检测即可。这里要讲到一个定时器时间计算公式TLCK指的就是系统时钟频率,设置为100MHz的话,用公式计算,定时器6就是10ms产生一次定时中断。生成工程文件后,编程代码如下:这样就可以每10ms检测一次按键unsigned int count = 0,flag = 0;void HAL_TIM_PeriodElapsedCallback(TIM_Ha..

2021-07-31 17:58:07 3364 3

原创 STM32G4 蓝桥杯嵌入式 外部中断按键处理

基础配置可参考流水灯实例查阅产品手册可知按键对应引脚如图我们使用按键B1 对应引脚为PB0

2021-07-31 17:09:35 1580 9

原创 STM32G4 蓝桥杯嵌入式 入门流水灯

初学G431这块板子的时候,用的是STM32cubeMX 和keil-MDK ,在百度上搜到的全是标准库的代码,但是cubeMX用的是HAL库 代码很不一样,而且对于引脚的初始化,标准库的方式需要手动进行配置,但如果使用cubeMX的话,所有初始化配置都由代码转变成可视化图形。使用这两个软件进行开发G431的板子上自带了DAP转串口,只要接上电脑就可以使用(win10);在写流水灯代码之前 我们要下载G431的固件包 这些网上教程其实已经非常详细了。下面说说几个要注意的地方...

2021-07-16 15:19:39 4468 1

蓝桥杯嵌入式 第七届省赛试题及解答

蓝桥杯嵌入式 第七届省赛模拟题2以及解答,是我自己赛前练习写完整的,包含全部工程文件

2022-04-21

蓝桥杯嵌入式 第十三届模拟赛题及解答

内含蓝桥杯嵌入式第十三届模拟赛试题和我自己写的比较完善的解答

2022-04-21

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

TA关注的人

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