自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stm32学习-硬件I2C读取MPU6050

第一步:配置I2C外设,对I2C外设进行(替换上一篇文章的I2C_Init)第二步:控制外设电路,实现指定地址写的时序(替换上一篇文章的WriteReg)第三步:控制外设电路,实现指定地址读的时序(替换上一篇文章的ReadReg)接下来我们就根据上述流程开始分析吧!

2024-06-21 00:13:03 1154

原创 stm32学习-软件I2C读取MPU6050

用法:先定义一个结构体变量,再给变量赋值,最后调用这个函数即可(这个函数就会自动读取结构体的值,然后自动把外设的各个参数配置好)。主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,数据。配置方法:先拉高SDA,再拉高SCL,然后拉低SDA,最后拉低SCL。主机在接收完一个字节之后,在下一个时钟发送一位数据,数据。配置方法:先拉低SDA,再释放SCL,再释放SDA.次,即可接收一个字节(主机在接收之前,需要释放。表示非应答(主机在接收之前,需要释放。线上(高位先行),然后释放。

2024-06-17 23:40:58 625

原创 stm32-DMA+AD通道

前面l两篇DMA转运里面的配置和AD的配置结合一下就可以形成我们这一篇的初始化代码。

2024-05-28 23:38:39 129

原创 stm32-DMA转运数据

在配置前要记得先定义一下DMA转运的源端数组和目标数组两个数组哦。接下来我们就开始准备配置吧。

2024-05-28 23:26:52 1032

原创 stm32学习-AD多通道

只需要在上一篇的基础上稍加修改。

2024-05-27 11:24:08 117

原创 stm32学习-AD单通道

1.开启RCC时钟(ADC、GPIO和ADCCLK的预分频器的时钟)作用:配置预分频器系数。(可以对APB2的72MHz时钟选择2/4/6/8分频,输入到ADCCLK中)作用:外设时钟控制(根据外设连接的总线选择要开启的时钟)RCC_AHBPeriph/RCC_APB2Periph/RCC_APB1Periph:选择外设NewState:使能/使能2.配置GPIO(把需要的GPIO配置为模拟输入的模式)作用:用结构体的参数初始化GPIO。

2024-05-27 11:16:06 1145

原创 stm32学习-串口收发(HEX/文本)数据包

串口收发HEX数据包接线TXD PA10 RXD PA9 按键 PB1 配置流程定义为固定包长,含包头包尾(其中包头为0xFF,载荷数据固定为4字节,包围为0xFE)注意:固定包长/可变包长,或者包头包围是什么,含不含包头包围这些,都是自己设置的。发送1.为方便收发数据包,我们先定义两个缓冲区的数组 ,设置数据个数为4个(这4个数据只存储发送或接收的载荷数据,不存储包头包尾)2.写一个函数(调用这个函数就会自动加上包头包尾发送出去)

2024-05-26 16:23:43 586

原创 stm32学习-串口发送和接口

流程:1.在主函数里不断判断RXNE标志位;如果置1了,就说明接收到数据了;2.调用ReceiveData读取DR寄存器。

2024-05-26 00:06:33 149

原创 stm32-USART串口外设

1.开启时钟(打开USART和GPIO的时钟)作用:外设时钟控制(根据外设连接的总线选择要开启的时钟)RCC_AHBPeriph/RCC_APB2Periph/RCC_APB1Periph:选择外设NewState:使能/使能2.GPIO初始化(TX配置为复用输出,RX配置为输入)作用:用结构体的参数初始化GPIO。用法:先定义一个结构体变量,再给变量赋值,最后调用这个函数即可(这个函数就会自动读取结构体的值,然后自动把外设的各个参数配置好)。3.配置USART。

2024-05-25 23:27:19 588

原创 MCS-51伪指令

上篇我们讲了汇编指令格式,寻址方式和指令系统分类,这篇我们讲一下单片机伪指令。伪指令是汇编程序中用于指示汇编程序如何对源程序进行汇编的指令。伪指令不同于指令,在汇编时并不翻译成机器代码,只是会汇编过程进行相应的控制和说明。伪指令通常在汇编程序中用于定义数据、分配存储空间、控制程序的输入/输出等。在MCS-51系统中,常用的伪指令有7条。接下来我们来一个一个学习。

2024-05-25 16:40:18 998

原创 汇编语言(STC89C52)

是计算机计算CPU根据人的意图来执行某种操作的命令。一台计算机所执行的全部指令的集合,称为这个CPU的。而想要使计算机按照人们的要求完成一项工作,就必须让CPU按顺序执行预设的操作,即逐条执行人们编写的指令。这种按照人民要求所编排的序列,称为程序。编写程序的过程叫做程序设计。程序时机语言就是编写程序的一整套规则和方法,是实现人机交互的工具,分为。我们本篇要了解的就是汇编语言。汇编语言是用助记符、符号和数字等来表示指令的程序语言,相对于机器语言来说,汇编语言容易理解和记忆。

2024-05-24 22:53:14 1021

原创 stm32学习-光敏传感器控制蜂鸣器

1.使用RCC开启GPIO时钟作用:外设时钟控制(根据外设连接的总线选择要开启的时钟)RCC_AHBPeriph/RCC_APB2Periph/RCC_APB1Periph:选择外设NewState:使能/使能2.使用GPIO_Init初始化GPIO作用:用结构体的参数初始化GPIO。用法:先定义一个结构体变量,再给变量赋值,最后调用这个函数即可(这个函数就会自动读取结构体的值,然后自动把外设的各个参数配置好)。

2024-05-23 00:19:52 837

原创 stm32学习-流水灯

注意:LED灯长一点的引脚是正极。

2024-05-22 23:46:08 876

原创 stm32学习-编码器接口测速

测频法就是相当于在1s时间内对上升沿计次(每来一个上升沿,其实就是来了几个周期),所以在1s时间内,来了多少上升沿,就是多少个周期,那它的频率也就是多少Hz (频率的定义是1s内出现了多少个周期,频率就是多少Hz)如果是2s的闸门时间,就是计次值除2,;由于我们只想要改变滤波器和极性的值,所以可以先用TIM_ICStructInit给所有参数都附个初始值,然后再用TIM_ICInit配置滤波器和极性的值(具体可以看一下后面的代码参考着理解,或者在评论区里提出疑问哦)向左慢速转,速度是负数,变化小;

2024-05-21 22:36:39 868

原创 stm32学习-PWMI模式测量频率占空比

上一篇有讲到输入捕获测量频率的代码,这篇的代码只需要把输入捕获的部分进行升级,设置成两个通道捕获同一个引脚的功能,这样子就同时显示一个通道的频率和占空比了。更改捕获单元的思路:(1)把通道初始化部分的代码复制一份,通道1还是直连输入和上升沿触发;通道2配置为交叉输入,下降沿触发。(2)利用上一个文章讲到的TIM_PWMIConfig函数配置。下面我们开始配置。

2024-05-20 23:48:19 893

原创 stm32学习-输入捕获测量频率

由于没有信号生成器,所以我是自己在引脚PA6生成特定的频率和占空比,再通过PA0读出频率和占空比。(有条件的同学可以拿信号发生器试试)

2024-05-20 23:17:19 606

原创 stm32学习-PWM驱动直流电机

电机驱动的底层需要PWM,配置时可先调用PWM_Init()函数,也就是我们刚刚写到的这个PWM函数。每按一次按键速度加20,当速度到达100时,给其赋值为-100,使速度一直处于-100~100之间,(负号显示为反转),OLED显示速度。上一篇代码使用的是TIM2的通道一,这一篇我们使用的引脚是PA2连接PWM ,根据引脚图,可以看到我们使用的是通道3。上一篇有讲到PWM的配置,此处不多赘述,细节部分可以参考上一篇。OLED的代码和按键的代码在文章中没有写,有需要的同学可以评论区里要哦。

2024-05-20 17:21:10 508

原创 stm32-PWM输出比较配置

这一部分上一篇有写,可以参考一下上一篇的内容,此处不多赘述了。原文链接:https://blog.csdn.net/m0_74246768/article/details/139048136。

2024-05-19 23:15:53 646 1

原创 stm32学习-用配置定时中断

根据上图我们可以分析出配置定时中断的基本流程。

2024-05-19 21:29:53 1154

原创 嵌入式学习-DMA

简介框图介绍引脚数据收发过程时钟以及控制部分相关寄存器相关库函数

2024-05-16 19:33:37 192

原创 嵌入式学习-DMA

介绍FIFO源、目标和传输模式框图介绍相关寄存器相关库函数

2024-05-16 19:13:56 163

原创 嵌入式学习-ADC模数转换器

简介框图分区芯片外部框图芯片内部框图转换部分框图状态输出部分条件触发部分相关寄存器相关库函数

2024-05-16 18:47:11 616

原创 嵌入式学习-输入捕获

简介框图介绍输入通道部分比较捕获寄存器与事件生成相关寄存器

2024-05-15 20:11:59 223

原创 嵌入式学习-PWM输出比较

简介PWM技术输出比较框图介绍定时器部分比较器控制部分输出控制部分相关寄存器

2024-05-15 19:51:13 253

原创 嵌入式学习-通用定时器

嵌入式学习全文参考(小向是个der)做笔记:https://blog.csdn.net/qq_41954556/article/details/129735708。

2024-05-14 23:06:09 403

原创 嵌入式学习-M4的基本定时器

基本介绍框图分析时钟选择计数器结构开启重装载值寄存器的影子寄存器的工作时序图未开启重装载值寄存器的影子寄存器的工作时序图更新事件以及中断相关寄存器相关库函数

2024-05-14 22:46:27 563

原创 系统定时器(SysTick)

介绍SysTickSysTick结构框图时钟选择计数器部分中断部分工作流程相关寄存器配置流程相关库函数

2024-05-13 21:58:41 232 1

原创 嵌入式学习-时钟树

寄存器部分的细节内容请参考手册。

2024-05-13 21:31:24 253 1

原创 嵌入式学习-外部中断EXTI

【代码】嵌入式学习-外部中断EXTI。

2024-05-12 21:25:56 208

原创 嵌入式学习-中断控制系统

补充一下前面NVIC内嵌向量中断控制器的知识。

2024-05-12 21:00:14 920

原创 嵌入式学习-串口中断

2024-04-29 17:31:41 64

原创 嵌入式学习-USART

4.STM32的串口框图(手册上的串口框图)2.STM32通信协议的配置方式。5.USART的相关寄存器。1.通信协议通信知识。

2024-04-29 17:21:39 151

原创 嵌入式学习-GPIO输入输出

没有写的知识欢迎私聊我补到知识导图里。2.GPIO相关的寄存器。

2024-04-29 17:15:48 265

原创 组合数据类型实战

需求:已知一个列表中存储的是员工的出生年份[88,89,90,98,00,99],由于时间比较久,出生的年份均为2位整数,现需要2位年份前加19,如果年份是00,将需要加上200。

2024-03-25 06:32:14 190

原创 组合数据类型

序列是一个用于存储多个值的连续空间,每个值都对应一个整数的编号,称为索引。运行结果运行结果运行结果运行结果列表1.指一系列的按特定顺序排列的元素组成。2.Python中内置的可变序列3.在Python中使用[]定义列表,元素与元素之间使用英文的逗号分隔4.列表中的元素可以是任意的数据类型1)使用 [ ] 直接创建列表语法结构如下:列表名=[element1,element2,……elementN]2)使用内置函数list()创建列表语法结构如下:列表名=list(序列)列

2024-03-24 22:44:46 1250 1

原创 程序的流程控制

程序的描述方式有三种:自然语言、流程图和伪代码(代码)程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构选择结构分单分支结构(if)、双分支结构(if…else. .)和多分支结构(if. .elif. else…)Python3.11新特征模式匹配match…case…结构循环结构有两种:遍历循环for和无限循环whileif结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层。

2024-03-18 00:42:56 720

原创 数据类型和运算符

变量名必须是一个有效的标识符变量名不能使用Python中的关键字慎用小写自己与I(挨)和大写字母O应选择有意义的单词作为变量名luck_number=8 #创建一个整型变量luck_number ,并为其赋值为8my_name='yi' #字符串类型的变量print('luck_number的数据类型:',type(luck_number))print(my_name,'的幸运数字是:',luck_number)# Python动态修改变量的数据类型,通过赋不同类型的值就可以直接修改。

2024-03-16 22:54:44 1731 1

原创 Python编程基础

1、Python语言的发明人——吉多·范罗苏姆(荷兰人)2、Python语言的设计非常优雅、明确、简单3、Python语言具有丰富和强大的库,能够把使用其他语言制作的各种模块(尤其是C/C++)很轻松的联结在一起1.程序设计语言又被称为编程语言2.计算机程序是使用编程语言组织起来的一组计算机指令3.计算机指令就是指挥机器工作的指示和命令4.编程语言可分为机器语言、汇编语言和高级语言5.采用编译方式执行的语言称为静态语言6.采用解释方式执行的语言称为脚本语言。

2024-03-14 22:30:04 1866 1

原创 函数基本知识

在函数使用的过程中,把函数的参数分为,实参和形参。int z = 0;z = x+y;return z;int b = 0;//输⼊//调⽤加法函数,完成a和b的相加//求和的结果放在r中//输出return 0;

2024-02-18 18:45:44 815 1

原创 数组(基础知识及实战练习)

上面的代码大家可以自行练习一下。

2024-02-15 20:48:59 484 1

空空如也

空空如也

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

TA关注的人

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