自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 set和multiset

set/multiset属于关联式容器,底层结构是用二叉树实现。对于自定义数据类型,set必须指定排序规则才可以插入数据。multiset不会检测数据,因此可以插入重复数据。set不可以插入重复数据,而multiset可以。如果需要插入重复数据利用multiset。成对出现的数据,利用对组可以返回两个数据。统计set容器大小以及交换set容器。如果不允许插入重复数据可以利用set。set容器插入数据的数据会自动排序。6. set和multiset区别。掌握set和multiset的区别。

2024-03-02 15:45:27 367

原创 list链表

List有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器。结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。总结:STL中List和vector是两个最常被使用的容器,各有优缺点。将容器中的元素反转,以及将容器中的数据进行排序。

2024-02-20 12:29:49 918

原创 stack容器和queue容器

概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。栈中进入数据称为 --- 入栈 push。队列中进数据称为 --- 入队 push。栈中弹出数据称为 --- 出栈 pop。队列中出数据称为 --- 出队 pop。功能描述:栈容器常用的对外接口。功能描述:栈容器常用的对外接口。

2024-02-20 12:25:18 317

原创 deque容器

2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中。有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间。deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据。总结:deque容器和vector容器的构造方式几乎一致,灵活使用即可。vector对于头部的插入删除效率低,数据量越大,效率越低。

2024-02-12 14:32:32 917

原创 vector容器

并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间。总结: vector赋值方式比较简单,使用operator=,或者assign都可以。总结:swap可以使两个容器互换,可以达到实用的收缩内存效果。vector容器的迭代器是支持随机访问的迭代器。插入 --- insert (位置迭代器)删除 --- erase (位置迭代器)返回容器容量 --- capacity。重新指定大小 --- resize。判断是否为空 --- empty。尾插 --- push_back。

2024-02-12 14:24:44 1110

原创 string容器

/使用一个string对象初始化另一个string对象。string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。replace在替换时,要指定从哪个位置起,多少个字符,替换成什么样的字符串。//创建一个空的字符串 例如: string str;string的赋值方式很多, operator= 这种方式是比较实用的。string是C++风格的字符串,而string本质上是一个类。

2024-02-08 15:23:20 1499

原创 初识STL标准模板库

STL中最常用的容器为Vector,可以理解为数组,下面我们将学习如何向这个容器中插入数据、并遍历这个容器。序列式容器:强调值的排序,序列式容器中的每个元素均有固定的位置。1. 容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。2. 算法:各种常用的算法,如sort、find、copy、for_each等。了解STL中容器、算法、迭代器概念之后,我们利用代码感受STL的魅力。

2024-02-08 15:17:58 390

原创 RTC 滴答计时器

滴答计时器是一个上行计数器。如果当前的滴答数达到这个值,滴答时间中断发生。[7:4] = 0000 设置频率。周期= (n + 1)/滴答时钟源频率。[8] = 1 使能滴答计时器。32位滴答时间计数值。(n =滴答计数器值)备注:该值必须大于3。

2024-01-31 09:25:24 437

原创 使用RTC的alarm功能写一个闹钟

他的寄存器配置这一坨和上面的BCD... 寄存器格局一模一样,往里面写值就等于设置了警报时间了。RTC_ALARM 的中断id为76。

2024-01-31 09:24:26 794

原创 RTC实时时钟之读取时间

RTC(Real Time Clock) 即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电。[4] 十位 注意这里只用了一bit表示十位的数 因为 01 02 03.....09 10 11 12 可以看到月的十位不是0就是1 所以1 bit足够了。[5:4] 十位 注意十位 只用了2bit 因为 十位上的数 不是 0 1 2 3 所以2bit足够了。支持秒、分、小时、星期、星期、月、年。

2024-01-30 12:47:11 947

原创 ADC模数转换器

1. 逐次逼近型CMOS: 结构一般 成本一般 转换一般 稳定性较低 即对精度要求不高,转换位数一般 成本低 单片机。2. 积分微分型: 结构简单 成本低 转换速度慢 稳定性较高 精度要求高 但速度不要求的场合 电子秤 数字万用表。[13:6] = 预分值 19-255 26 = 133M / 5M - 1。数字量量程 / 参考电压 == 测量值 / 被测电压。被测电压(V) = 测量值 / ( 数字量量程/参考电压)[16] = 1 采用12bit转换。

2024-01-30 12:41:01 527

原创 ADC模数转换器

1. 逐次逼近型CMOS: 结构一般 成本一般 转换一般 稳定性较低 即对精度要求不高,转换位数一般 成本低 单片机。2. 积分微分型: 结构简单 成本低 转换速度慢 稳定性较高 精度要求高 但速度不要求的场合 电子秤 数字万用表。[13:6] = 预分值 19-255 26 = 133M / 5M - 1。数字量量程 / 参考电压 == 测量值 / 被测电压。被测电压(V) = 测量值 / ( 数字量量程/参考电压)[16] = 1 采用12bit转换。

2024-01-30 12:39:31 367

原创 exynos4412开发板模拟小星星

【代码】exynos4412开发板模拟小星星。

2024-01-29 13:00:12 207

原创 脉宽调制器

脉宽调制器: 一种硬件设备, 用于 动态调制 方波 的 一些属性, 方波的周期,频率,占空比。输出定时器信号的 频率 = 总线时钟 /固定分频/ (分频值+1) / 重载值;输出定时器信号的 频率 = 总线时钟 /固定分频/ (分频值+1) / 重载值;[3:0] = 0-4 分别对应 1/1 1/2 1/4 1/8 1/16。输出波形的 频率 = 总线时钟 / (分频值+1) / 重载值;500hz = 100M / (分频值+1) / 重载值;

2024-01-29 12:58:29 413

原创 看门狗定时器

对于变量:static 关键字使得局部变量具有静态存储期,在程序执行过程中只被初始化一次,并且它们的值在多次执行函数时会保持持久性。对于类中的成员:static 关键字可用于创建静态成员,这些成员在所有类对象之间是共享的,而不是每个对象拥有自己的副本。volatile 关键字的主要作用是告诉编译器不要对变量进行优化,每次访问变量时都要从内存中读取,而不是使用缓存的值。输出定时器信号的 频率 = 总线时钟 / (分频值+1) / 重载值;0.2hz = 100 MHz/ (分频值+1) / 重载值;

2024-01-26 09:31:42 1109

原创 中断控制器

指中断触发时, 中断控制器或中断源本身, 将中断信号记录到一个寄存器(挂起寄存器)中若挂起寄存器中 有中断被挂起了, 表示 该中断触发了,但还没有处理或正在处理中 处理完中断后 应立即清除中断挂起, 否则该挂起的中断 将会持续尝试打断CPU。通过 中断源表 查询可得 GPX1_1 --- EINT[9] ---- ID(57) --- SPI中断端口号 25。1. 扩展中断接口 CPU--irq 中断控制器(GIC) ----- 中断源。

2024-01-26 09:20:49 860

原创 串口控制器

1. 串口通信1.1 什么是串口是一种通信方式(通信协议) 主要通过串行方式完成设备间的数据通信通信领域中使用最频繁,实现方式最简单的一种通信方式串口: 全双工串行异步通信协议串口3线: RX 接收TX 发送GND 共地信号 参考地1.1.1 通信全双工,同时相互通信半双工,不能同时但可以相互通信单工 ,只能从一方到另一方通信1.1.2 串行和并行串行: 通过一根线传递数据, 按bit位方式 依次传递 使用的IO口少 传输较远 外设。

2024-01-25 13:43:47 1433

原创 exynos4412之按键控制led

GPX1PUD pull-up/ pull-down register 上下拉配置寄存器。GPX1CON configuration register 配置寄存器。key input功能 按键按下 LED 亮 按键弹起LED 灭。"exynos_4412.h" 中gpx...和gpf...的结构体结构一样。3. 芯片管脚控制 功能 芯片手册 gpio功能。一定注意我们这块板子,按键key全都默认打开输入模式的。2. 硬件设备 与 芯片的 逻辑连接(看电路图)

2024-01-25 13:40:22 444

原创 exynos4412开发板点亮led

LED2 ---- 限流电阻 ---- 3级管 ----- CHG_COK ---- CPU --- XEINT23/KP_ROW7/ALV_DBG19/GPX2_7。有电路图可知 CPU --- GPX2_7 管脚 输出一个 高电平 对应 LED2 亮。GPX1_0: 表示该管脚 属于 GPX1 管脚组 _0 表示该管脚在组中的 0号位置。LED3 ------ GPX1_0 //实验 点亮这个灯。LED3 ------ GPX1_0 //实验 点亮这个灯。

2024-01-24 12:31:47 1069

原创 exynos4412接口编程---环境搭建

E:\peixunQianrushi\arm\ziliao\FS4412新版(学生资料)\工具软件\USB串口驱动\CH340。E:\peixunQianrushi\arm\ziliao\FS4412新版(学生资料)\工具软件\超级终端。E:\peixunQianrushi\arm\ziliao\FS4412新版(学生资料)\环境相关资料。安装完毕后,然后右键此电脑--->管理-->设备管理器--->端口,查看自己的端口号。如果提示错误(找不到命令)说明是我们64位的机器而编译器是32位的,所以不适配。

2024-01-24 12:23:06 456

原创 内存操作指令

这种的使用swp 时读取和写入是一条指令,cpu打断一条指令的最小单位是,一条指令,所以,swp不可能别打断,保证了操作的原子性。swp r2,r1,[r0] 将r0地址中的数据取出到R2中,同时将r1中数据放入到R0地址中。这种操作先读然后再写,这个两个步骤了,操作有可能再中间被打断,不能保证操作的原子性。空增栈: 入栈 *p++ 出栈 *--p;空减栈: 入栈 *p-- 出栈 *++p;满增栈: 入栈 *++p 出栈 *p--;满减栈: 入栈 *--p 出栈 *p++;

2024-01-23 18:08:50 521

原创 初识汇编指令

右移4位 -----> 1111 0000 0000 0000 0000 0000 0000 1111。0100 1011 0000 0000 0000 0000 0000 0000 右移 16 如下。1011 0000 0000 0000 0000 0000 0000 0100 右移 8 如下。0000 0000 0100 1011 0000 0000 0000 0000 右移22 如下。0000 0000 0000 0000 0000 0000 0100 1011 右移 4 如下。

2024-01-23 17:04:08 1029

原创 ARM体系架构

那么可以推断出,在下一个5周期执行完毕后,指令2也执行完毕,再下一个5周期执行完毕后,指令3执行完成,由此可以得出再第4个5周期后,每5个周期都会有一个指令执行完毕,所以100条指令需要500周期,但是前面还有3个5周期(称之为流水线的建立周期)要计算,总共515周期。RISC:精简指令集处理器 追求的是 结构的简化 功耗的降低 ,指令长度是固定 舍弃了一些复杂指令 转而由多个简单指令取完成复杂指令的工作,嵌入式应用场合, 低功耗, 对成本敏感的 场景。

2024-01-20 17:11:24 1116

原创 ARM安装与项目结构

1、在接下来的安装过程中,对于使用win10、win8的操作系统的用户,所有的安装请均以管理员身份运行,若弹出需要修改驱动器,请点击同意;安装程序arm-2011.09-70-arm-none-linux-gnueabi.exe。找到对应交叉开发工具路径,填写编译工具名 arm-none-linux-gnueabi-3、安装时,请尽量使用默认路径,路径中尽量不要出现中文,避免出现意想不到的错误;2)均点击下一步,出现填写邮件等地址,可以任意填写,但不要使用中文。若出现安装提示框,请点击是或安装。

2024-01-20 17:09:54 573

原创 电子词典Qt版

实现类,主要是向服务端发起tcp请求连接,并且接收服务端返回的数据,涉及登录注册服务,调用电子词典主界面。实现类,主要是向服务端发起tcp请求连接,并且接收服务端返回的数据,涉及登录注册服务,调用电子词典主界面。主要涉及电子词典功能的实现,向服务端发送数据,并且根据服务端返回的数据进行校验然后进行逻辑处理。主要是根据客户端发来的不同的业务需求去调用相应的功能,然后给客户端返回相应的数据。线程类的实现,接收客户端发来的数据,具体的功能为客户端提供数据,连接数据库。测试,先运行服务端在运行客户端。

2024-01-19 13:05:47 482

原创 在Qt中使用sqlite数据库

addDatabase():连接指定的数据库类型,返回值得到对应数据库的操作对象(QSqlDatabase)QSqlDatabase类,函数setDatabaseName():指定操作的数据库文件名。在Qt中操作数据库,也是执行对应的sql语句。next():判断执行sql语句是否有结果。1.3 通过sql语句操作数据库文件。QSqlQuery类:执行sql语句。1.1 连接指定的数据库类型。exec():执行sql语句。1.2 根据类型打开数据库。open():打开数据库。Qt支持多种数据库类型。

2024-01-19 13:00:53 549

原创 Qt网络通信

nextPendingConnection():服务器建立与客户端连接,返回值 QTcpScket 类对象:通信套接字对象。newConnection():信号,当有新的客户端连接时,会产生这个信号。disconnected():信号,只要套接字断开连接,就会产生。disconnected():信号,只要套接字断开连接,就会产生。readyRead():信号,当发送给数据到套接字,套接字可读。readyRead():信号,当发送给数据到套接字,套接字可读。连接客户端---得到与客户端进行通信的套接字。

2024-01-18 14:56:55 841

原创 Qt进程和线程

通过QThread类,派生出新类,派生类 也是线程类,同时重写 run函数实现需要的线程功能,当启动线程时,就执行自己的run作为线程任务。run()函数:线程的执行(当线程执行时,就是执行run函数,QThread类已经由Qt完成,run不能修改----线程任务功能固定)核心思想就是,在创建一个类继承QThread,然后再新创建的类中重写run()函数执行线程,在主进程中 启动线程。在进程上下文切换时,系统开销比较大,多个线程在进程中,可以共享进程的资源,而调度方式和进程相同。

2024-01-18 14:51:19 714

原创 Qt事件的使用

操作系统接收产生的事件(鼠标、键盘等等)-----QAppliction(应用程序)监听事件-----将事件分发给QEvent------下发给具体的事件处理对象(按钮对象、标签对象等等)-----具体的事件处理对事件(键盘事件、鼠标事件)进行处理。在Qt中,事件的类型已经完整的定义出来,但是对事件的操作事件的处理各不相同,需要对我们自己设计的窗口部件进行事件处理。QT中事件的产生(键盘事件、鼠标事件、定时器事件、绘画事件等等)、事件的经过(事件的传递或者是派送)、事件结果。关闭定时:关闭定时事件。

2024-01-17 15:59:40 381

原创 Qt绘画的使用

QPaintDevice类就是绘制的位置,是QPaintDevice类对象或派生类对象就是可以绘画的地方。当整个窗口或窗口的一部分需要重新绘制时,会调用绘制事件处理函数。QPainter类,就是Qt中进行绘图类。1.2.3 多次绘制,并且之前的绘画还在。在QPainter类中存在各种绘制功能。QBrush:在绘制封闭图形时进行填充。1.2.1 画直线,圆,矩形,画文本。QPen:进行绘制图像的笔。

2024-01-17 15:59:23 774

原创 模拟记事本

(6)设置粘贴、复制、剪切、撤销等。(4)查找记事本中的数据。

2024-01-16 14:13:09 437

原创 Qt文件操作

QFileInfo文件信息类:来查看文件的基本信息,例如:文件名、文件大小、文件的创建时间、最后更改时间等等。因为QDataStream,是专门用来读取二进制文件的,所以我们去读文本文件,读不出来。QT中使用QFile类来对文件进行操作:打开文件、读取/写入文件、关闭文件。QDir目录类:来操作目录,创建目录、删除目录、切换目录等等。4.2 使用文本流的方式操作文件 QTextStream。4.3 使用数据流的方式操作文件。2.1 查看文件信息的基本函数。1. 文件操作知识点。4.1 直接操作文件。

2024-01-16 14:11:25 671

原创 颜色对话框 QColorDialog和文件对话框 QFileDialog

请注意这个文件是没有保存成功的,要保存文件会设计文件操作的知识。返回值:QString,文件保存成功,会将文件路径返回。返回值:QString,将文件的路径返回出来。参数2:指定文件对话框的标题。参数2:指定文件对话框的标题。参数5:选择指定的文件过滤器。参数2:指定文件对话框的标题。参数5:选择指定的文件过滤器。参数2:指定文件对话框的标题。参数5:选择指定的文件过滤器。参数3:指定打开文件的路径。参数3:指定打开文件的路径。参数3:指定打开文件的路径。参数4:文件对话框的标志。参数4:设置对话框标志。

2024-01-15 11:50:08 426

原创 字体对话框QFontDialog、消息对话框 QMessageBox和输入对话框 QInputDialog

参数1:如果字体设置成功,ok返回true,否则返回false。参数1:如果字体设置成功,ok返回true,否则返回false。返回值:double,获取double类型的数据。参数4:设置输入对话框显示的当前值。参数4:设置输入对话框显示的当前值。参数3:设置标签(提示的文本)参数8:设置输入是否成功的标志。参数9:设置window的标志。参数3:设置标签(提示的文本)参数8:设置输入是否成功的标志。参数9:设置window的标志。参数4:指定对话框中的按钮。参数3:指定提示的文本。

2024-01-15 11:46:12 555

原创 QToolBar、QStatusBar和QDockWidget的使用

2. 状态栏 QStatusBar。3.1.1 实例化纯文本编辑框。1.1.1 工具栏的基本函数。设置工具栏的停靠区域 参数。2.1.1 状态栏的基本函数。3.1.2 工作区基本函数。是否可移动、可关闭和可浮动。添加工作区的位置 参数。

2024-01-13 18:14:13 565

原创 QMenuBar和QACtion的使用

addAction是执行一个动作,但是addAction后面不能执行addMenu了。如果 不使用 返回值 向后继续addMenu()创建菜单项的话,就是横向添加的。菜单栏:使用QMenuBar类管理,管理菜单栏中的菜单或者执行动作。2.4 练习:试着模拟记事本的菜单栏的搭建。工作区:使用QDockWidget类管理。状态栏:使用QStatusBar类管理。工具栏:使用QToolBar类管理。执行动作:QAction类管理。菜单项:QMenu类管理菜单项。1)向菜单栏中添加菜单,2.3.1执行动作的信号。

2024-01-13 18:09:14 572

原创 滑动条QSlider和进度条QProgressBar

很好:10 一般:6 不好:4 很差:0。(4)实现对满意度分值的计算,并给出相关建议(根据不同的分段,建议不同)(5)用户必须将每个选项填写完成,如果没有填写完,则给予用户提示。(2)每个选项下分4个选择, 最好的选择分数为10分。当进度条中显示的值发生变化时,就会发出这个信号。2.3 练习:实现滑动条控制进度条。(3)用户可以自行填写满意度调查表。1. 滑动条:QSlider。滑动条刻度的 位置 参数。2.1滑动条的基本函数。

2024-01-12 13:58:53 489

原创 复选框QCheckBox和分组框QGroupBox

1. 复选框:QCheckBox。复选框被选中状态改变 触发信号。2.分组框:QGroupBox。1.1.1 复选框的基本函数。2.1.1 分组框的基本函数。复选框选中状态的参数。

2024-01-12 13:58:23 572

原创 模拟超市商品结算系统

(4)在节假日有优惠活动,可以对其中的一些商品修改相应的单价(价格提高和价格降低都可以)(2)管理员登录之后,可以进行上架新的商品(商品名称和单价)(6)用户结算商品时(清空购物车),计算购物车中的商品的总价。选择需要购买的商品,存放到自己的购物车中。(3)管理员登录之后,也可以下架商品。也可以移除掉购物车中指定的商品。(1)需要管理员注册与登录。

2024-01-11 15:07:09 525

原创 自旋框的使用

双精度的和单精度的使用基本一致,只需要改变参数的类型即可。1.2 双精度自旋框 QDoubleSpinBox。1 单精度自旋框 QSpinBox。1.1.1 单精度自旋框的基本函数。1.2.1 双精度自旋框的基本函数。

2024-01-11 15:06:32 602

空空如也

空空如也

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

TA关注的人

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