自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32学习 -- TIM -- 定时中断

定时器是stm32比较重要的外设,拥用定时中断,内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。定时器类型:stm32103 中有TM1--TM4。

2024-03-19 08:57:13 361 1

原创 STM32学习 -- EXIT中断

在主程序运行中,触发了中断条件,转而去处理中断程序,处理完后,会返回原来的位置继续执行主程序。:当多个中断源同时申请中断,cpu会优先响应优先级高的响应。: 当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。把中断程序进行中断。stm32103一共有68个中断,包括exit tim dma等中断。使用NVIC来管理这些中断,每个中断可设置优先等级。上图是中断向量表,NVIC基本结构。

2024-03-18 16:30:35 1587

原创 tcp/ip协议学习 -- TCP协议

3.缓冲机制:tcp提供一个缓冲机制,当数据过小时,tcp会将其存储到缓冲中,当数据足够时才能发送,此外发送完也不会立即删除数据,而是等到接收方确认收到的通知。客户端收到数据包,检查ack是否为1,如果正确则将ack标志位值位1,再次发送给服务端,服务端再次检查该标志位,如果为1,则正式建立起连接。封装:应用数据沿着协议栈 ,从tcp ip 以太网驱动驱动传递,在传递过程中,会一次加上tcp,ip,以太网头部信息,也就是封装。udp协议和tcp相反,会应用层提供一种不可靠,无连接,基于数据报的传输服务。

2024-03-18 10:55:05 1739

原创 libevent 网络库

libevent是一种支持i/o多路复用技术,epoll技术的轻量级网络开发库。struct event :指一个事件(fd或者信号),供接下来监听使用。struct event_base :统一管理所有事件,认为是所有事件的集合。2.1 event_init :用于初始化事件集合2.2 event_base_new 创建event_base对象2.3 event_assign 给event对象赋值2.5 event_add 将事件添加到集合中。

2024-02-24 11:50:29 1653

原创 qt开发系列5 qt下的串口编程

我们需要添加一个功能:打开界面后,串口就自动搜索串口号。我们通过仿写一个串口界面来学习。其次在wigedt.cpp中填写。我们首先在.pro文件中 添加。首先我们创建一个界面,

2023-08-22 18:30:23 238 1

原创 qt开发系列4 界面优化

再之后:先点击add prefix ,将前 zhua 改成根目录,然后crtcl s保存,之后add files 添加图片。首先我们右击总项目名称,点击add new ,选择qt,选择qt 资源文件,之后随便去个英文名。当界面缩放时,部件依旧正常显示,或者说为了适应不同大小的显示屏。之后开始绘制新的界面,我们需要将界面大小设置成和主界面一样大。,之后再槽函数里添加:this -> close();首先点击工程名,点击add new,选择。最后,我们添加一个账号,密码验证的功能,step1:添加图片资源。

2023-08-16 15:44:37 208 1

原创 qt系列3 信号与槽函数

这个函数我们简化成connect(A,SINGAL(B),C,SLOT(D));当部件a发出信号b时,c会触发d槽数。槽函数只能声明在 private slots或者public slots中。信号与槽指的是 触发某一个部件时,部件会发出信号来触发槽函数。我们在cpp文件中利用connect()函数来进行关联。在这之前,我们需要将部件的信号与函数进行关联。首先我们可以对ui文件中的部件修改进行修改。我们右击ui文件中部件的转到槽。最后在头文件中添加函数申明。

2023-08-16 10:07:18 112 1

原创 (阶段二)时钟简介 (自学海创电子)

HSE时钟源一般都是取8MHZ,经过选择器,到了PLL这儿,32是选择*9的倍频,既72MHZ,所以系统时钟为72MHZ,在之后再由总线分频到HCLK时钟(最大72),总线1(最大36)和总线2(最大72),这些总线挂载着各种外设,时钟源与这些外设之间都通过。硬件仿真:需要单片机连接到电脑上,点击keil软件的放大镜按键,我们可以通过断点来调试,此外还可以魔术棒,debug,来修改时钟系统的频率,如果不是硬件仿真中,我们不要这样操作。51单片机只有一个时钟源,是11.0592M.而32有5个时钟源,

2023-08-14 17:02:27 88

原创 c++学习日记2 类的封装

class和struct 最大的区别就是class默认是私有值的,而struct则默认是公有的。我们一般是在头文件中声明这个类,之后再一个文件写成员函数是如何实现的,这里函数前面要加上作用yu,不然编译器以为函数是全局函数。,最后在主文件中创建该类的对象,进而调用成员函数。

2023-08-14 17:00:46 20

原创 c++学习日记1

他和指针不同的是首先他不能为空引用,必须指向一块内存,其次必须一开始就引用初始化,最后,一旦引用了一个变量,就不能改成其他对象了。在c语言中就不行,因为返回的是上面a和b赋值具体的值,而在c++中则返回的是变量名a或者b。他一般是用于函数的参数以及函数的返回值。注:这里返回的只能是全局变量的引用,不能是局部变量的引用。const关键字 在c语言中,修饰成只读,而在c佳佳中,则是常量,永远就是初始化赋值的值。void f2() c中表示可以接受任意参数,如果(void)则表示不接受任何参数。

2023-08-14 15:23:59 31

原创 qt系列2 qt中ui的使用

layouts:布局控件 item views item widgets 视图控件。spacers:分栏控件 Containers 文件夹。

2023-08-08 16:06:18 127

原创 qt系列1 工程模板分析

include "ui_mainwindow.h" //ui_mainwindow.h是界面设计头文件,不需要用户去 管,自动生成的。delete ui;// 执行应用,一直轮询这个应用。//定义一个ui窗体。MainWindow::MainWindow(QWidget *parent) //构造函数。

2023-08-08 15:03:44 31

原创 (阶段二)库函数模板解析2(自学海创电子)

我们需要针对上述的代码,进行工程化改进。模块化后看似麻烦,其实方便以后的移植。

2023-08-05 14:03:30 60 1

原创 (阶段二)库函数模板解析1(自学海创电子)

GPIO_Init函数 要求传入两个指针,第二个参数是结构体变量,所以在传入参数时,我们需要取地址符号,这里有个问题 为啥第一个参数不能按照那个方法,先声明一个结构体变量,再变量.aa...呢?上述图片中 assert_param()是为了检测参数是否为有效参数,两个参数其实都是些固定参数,图片中包含所有有效参数。1.我们直接操控寄存器:1.配置时钟 2.配置引脚(确定输出或者输入模式,在确定那种输出模式)总结一下: 我们首先声明一个结构体变量,再确定参数(配置引脚),最后带入引脚初始化函数中去。

2023-08-04 14:41:54 300 1

原创 stm32 漫向标准库st3(海创电子)

只能以16位的形式来操作,高16位与低16位,在低16位的某一位设置为1,则相当于输出高电平,和odr某一位设置为1一样,如果设置为0,则没有任何效果,如果想输出低电平则在高16某个引脚设置为1,如果设置为0,则没有任何效果,bsy:是设置,bry:是清除。如果BSRR想要输出低电平以及高低平,就是使用不同的位,所以我们引出另一个寄存器BRR。brr的低位作用与bsrr的作用是一样的,在某一位设置位1,可以清除作用,可以输出低电平。

2023-08-03 18:47:26 211

原创 stm32 库函数配置 (自学海创电子)(阶段1完结)

片上外设指的是整个芯片中除了M3内核以及总线都是片上外设,例如,GPIO(通用输入/输出)引脚、UART(通用异步收发器)、SPI(串行外设接口)、I2C(集成电路互联)等都是常见的片上外设。: stm32f10x_it.c和stm32f10x_it.h it:interrupt 跟中断程序有关。system_stm32f10x_it.c和system_stm32f10x_it.h 设置时钟。*/附:stm32f10x.h 是片上外设寄存器的映射,而core_cm3.h则是内核外设。

2023-08-03 18:34:07 232

原创 stm32 漫向st库2 (海创牛牛)

接下来我再之前的代码进行模块化,考虑到芯片有许多引脚,我们再之前的工程中只用到一个引脚GPIOC,但是实际工程我们用到不止一个引脚,所以为例效率,我们将引脚给包装好,既把引脚弄成一个个结构体,结构体内包含几个他有的以及我们所需要的寄存器。这段代码的意思是,将GPIOC_BASE的地址转为GPIO_TypeDef类型的指针,并赋值给GPIOC,此时GPIOC指向这个结构体,其地址就是首个元素的首地址,我们想要使用某个寄存器就要,GPIOC->CRH的方式来表示GPIOC_CRH。同理,crr时钟 一是如此。

2023-07-27 19:11:55 39 1

原创 stm32 漫向st库1(海创电子牛逼)

可以见到 所有的外设都挂在3跟总线上APB,APB1,APB2。RCC_APB2ENR是在RCC基础上偏移0x18。

2023-07-27 18:40:25 71 1

原创 stm32 点灯大师1

RCC寄存器组地址空间为0x4002 1000,RCC_APB2ENR寄存器偏移量为0x18,所以RCC_APB2ENR的起始空间为0x4002 1018,RCC_APB2ENR的寄存器第4位作用是GPIO端口使能。0-3 为第0个引脚,所以ORL是第0个到第7个引脚,所以第13引脚是在ORH寄存器上,在pc13是要输出低电平,所以mode选择输出模式,输出速度选择10mhz,cnfy则选择推挽输出模式。其中起止地址0x40000000到0xFFFFFFF的地址空间这部分空间,我们常用,主要是用于引脚。

2023-07-27 15:54:11 57 1

原创 老王的学习日记--江科大stm32入门--stm32介绍

我们用的开发板型号是STM32F103C8T6,其运行内存是20k,内存为64k。

2023-06-05 22:29:27 545 1

空空如也

空空如也

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

TA关注的人

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