自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LCD文字和图片取模软件的使用

字体的大小是16x16,则对应的英文大小是8x16,逐行式取摸的话,每一行里面8个点合成一个字节取摸,所以一共取出了16个字节的数据。字体的大小是16x16,逐行式取摸的话,每一个行有16个点,每8个点合成一个字节取摸,所以一共取出了32个字节的数据。这里以取摸字体'A'举例;字体大小:16x16;Img2Lcd取模软件主要是针对图片文件取模,可以根据下图说明对取模软件进行设置。字体大小:16x16;打开取模软件,取模获取字符:(注意是常有的所有字符)好了简简单单,下期讲汉字编码 bye~

2023-03-28 20:40:05 3511 1

原创 LCD简括

什么意思呢,比如说你随机取色RGB为255:120:64,5: 6:5就是分别取这三个数的高五位、高6位、高五位,然后拼成16位酱紫......PA15(背光,高电平有效)和PB4(片选,我们这里使用一直拉低)、以及PD2(数据命令端,0是命令、1是数据)LCD就是液晶显示器,其实本质就是灯,无数的灯组成的,每个灯如果只有两种颜色就是黑白,如果颜色较多就是彩屏。从上面可以看到只有五条线有用,其中有一条是复位,我们需要了解其它四条是什么。颜色的组成是RGB,屏幕是16位真彩,所以选择的比例是5:6:5。

2023-03-25 09:35:53 607

原创 SPI&W25Q64(硬件编程)

片选引脚CS:输入(MISO)输出(MOSI)和时钟线(SCK)引脚:​​​​​​​​​​​​​​。

2023-03-24 10:16:46 375

原创 SPI&W25Q64(精华版)

时钟相位定义数据输入的采样时间点,CPHA=0定义数据采样的时间点在时钟周期的第一个跳变沿,则数据输出的时间是在时钟周期的第二个跳变沿,CPHA=1 定义数据采样的时间点在时钟周期的第二个跳变沿,则数据输出的时间是在时钟周期的第一个跳变沿。由主设备通过将指定从设备的 NSS 引脚拉低启动一次通讯过程,主设备和从设备将需要发送的数据装入各自的移位寄存器,主设备在 SCK 引脚产生脉冲以实现数据交换,由主设备通过拉高从设备的NSS引脚结束本次通讯。SPI是串行通讯协议,也就是说数据是一位一位的传输的。

2023-03-22 20:26:59 1275

原创 陀螺仪MPU6050(IIC&源码)

陀螺仪在你设置好参数之后,就会根据你设置的参数获取数据,数据存储在对应的寄存器中,你可以通过对应寄存器读取到想要的数据。我们是使用这个装置(或者说设备)获取到数据,再使用这个数据得到我们想要的信息。这里我使用陀螺仪获取板子的运动轨迹(其实是陀螺仪的运动轨迹)。又又又使用的是IIC通信协议,而且引脚又是PB6和PB7。用于检测角度变化,用角度变化的值判断物体的运动轨迹。结合原理图可以知道地址是0x68。检测角度变化的一个装置。

2023-03-21 09:22:00 2331

原创 人体红外测温(MLX90615)

上图其实也能看到:首先起始信号写指令(0xB6),然后发送转换指令(0x27),接着再来起始信号读指令(0xB7),接下来就是十六位的温度0x5B和0x3C(组合方式是0x3C5B)。从原理上可以知道采用的是IIC通信协议,我们可以通过地址决定与谁进行数据传输。从图上可以看到写指令是0xB6,读指令是0xB7,也就说地址是0xB6。

2023-03-20 17:20:43 351

原创 IIC及配置应用(SHT30读取温湿度)

从图上可以知道,首先起始信号写指令(0x88),然后发送转换指令(0x2C06 高重复性测量),接着再来起始信号读指令(0x89),接下来就是十六位的温度+CRC读取,再然后就是十六位湿度+CRC读取。主机发从机收(out):所以对于IIC协议的设备来说(从机),它在检测到时钟线变低了就代表对面(主机)在放数据了,时钟线拉高了代表对面放完了,自己可以读取数据了。CPU(主机)给外设(从机)传输数据,CPU拉高SCL和SDA代表等待应答,外设会拉低SDA代表给出应答,如果没有拉低代表未应答。

2023-03-20 09:34:36 2358 1

原创 RGB(附源码)

发送数据0:数据线持续220ns~380ns的高电平,然后再持续580ns~1us的低电平,此时就是数据0。发送数据1:数据线持续580ns~1us的高电平,然后再持续220ns~420ns的低电平,此时是数据1。每个灯都是独立的,每个灯需要24位数据才能正常显示,数据在经过灯的时候会自动被截留24位数据。数据从输入引脚输入,依次传递到下一个RGB灯的地方,这里的输入引脚相对于主控来说是输出。RGB灯这个模块的名称是WS2812B,我们得去了解这个模块。本身比例就是R:G:B=8:8:8。

2023-03-18 14:39:36 717

原创 外部中断及配置

中断做事的流程:开放中断(CPU允许你产生中断)、开启中断(自己允许产生中断)、编写中断服务函数。按键按下,中断会检测边沿变化,PA0按下后产生的是高电平输入,所以使用上升沿检测。中断是用于处理突发事件的,外部中断处理的是IO口发生的中断事件。PA0是外部中断0的映射,那也就说我们开启的是外部中断0的中断。我们使用按键去产生中断,PA0是按键1的引脚,这里产生中断。

2023-03-18 09:16:10 958

原创 定时器输出比较&输入捕获

PB0在原理图上连接的是LED3,在引脚映射上描述是可以作为定时器3的通道3,如果我使用定时器3的通道3作为PWM输出,LED3就会接收到PWM输出的波形。PWM是有效电平和无效电平的一个占比,灯是低电平有效,高电平无效,如果有效电平时间长灯亮度高,有效时间短灯暗。找一个现象学习这种功能,我们这里使用按键去测试,按键按下被捕获,松手又会捕获,计算两次之间的时间,得到按下的时长。字面意思捕获输入的信号,怎么捕获?所谓的输出比较就是计数器的值与比较寄存器的值进行比较,大于输出一种电平,小于输出另一种电平。

2023-03-17 20:09:19 1668

原创 定时器(入门级)

从框图和简介可以知道:预分频器将提供给定时器的时钟频率降低,计数器根据降低后的频率计数,自动重装载值代表计数上限。总结:如果一个东西可以用于数数(计数),计数的时间间隔如果是固定的,所数的数就能代表时间,这个东西就是定时器。上面设定完成之后,开启定时器,定时器就会自动计数,每一秒产生一次溢出事件,我检测溢出事件就知道是否过去一秒了。系统滴答定时器它的计数器是24位的,最大计数值是2^24。怎么代表时间,以数值代表时间,数值的计数间隔就是固定的。选定固定的计数源,计数器计数,计数器的值代表时间。

2023-03-17 09:11:16 150

原创 库函数配置串口(串口3为例)

串口3是连接语音识别功能的,也就说识别到东西后会返回数据给主控芯片,通过串口3传输进来的。PB连接在AHB1上,串口3连接APB1,所以使用它们对于的时钟使能函数,开启它们。从上面可以知道,形参是两个第一个是分组,第二个是参数(引脚编号、模式和速度)设置。因为我们知道分组一个程序只能设置一次,所以在程序开始的时候设置。从库函数的名称和介绍可以知道GPIO_Init是初始化引脚的。所以我们这里先在中断服务函数中直接回显收到的数据以此验证。设置完成之后打开了串口功能了。GPIO_Init函数介绍。

2023-03-16 09:59:41 404

原创 串口收发数据

所谓中断是用于处理突发事件的,你首先要开启中断(CPU允许,自己开启),然后编写中断服务函数,当中断事件产生的时候,代码回自动进入到中断服务函数去执行,执行完返回原来的地方继续执行原有程序。接收数据要等待,如果没有数据过来不做其它事情,这样是不合理的,有什么办法可以处理这件事?中断处理过程:异常(中断)中断源-->允许中断-->申请中断--> CPU 响应-->保护现场(栈)--> 跳转处理-->返回。优先级代表谁先谁后,在这里代表谁先执行,谁后执行,说的是中断,意思是多个中断一起触发谁先执行。

2023-03-15 11:14:52 3109

原创 串口简括及配置(寄存器版、源码)

为了保证数据传输正确就要协商好,协商好的东西被称之为协议,根据协议的不同串口有不同的称呼(232、485、IIC、SPI等都是串行通讯协议),但是一般情况下我们说的串口是通用串行传输口(USART),我们这里学习就是它。最后是停止位,用以表示字符的结束,停止位可以是1位,1.5位,2位,不同的计算机规定不同。串意思是连续在一起,但是互相独立,串口是用于收发数据的,所以意思是数据是连续收发但是独立存在的,为什么是独立存在的呢?同步:使用的时钟(传输数据的依据,其实就是产生频率的东西)是同一个;

2023-03-14 19:41:18 1729

原创 系统滴答配置讲解(附源码)

在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟),或者是外部时钟(处理器上的STCLK信号)。从上面的框图可以看到,系统滴答定时器它一共有4个寄存器控制(权威指南282页),是一个向下的24位计数器,时钟源可以选择外部时钟源和内部时钟源两种。

2023-03-14 15:46:45 634

原创 浅讲位段操作(stm32)

这样1MB的SRAM就可以有32MB的对应别名区空间,就是1位膨胀成32位(1bit便是一个字),我们对这个别名区空间开始的某一字操作,置0或者1,就等于映射的SRAM或I/0相应的某一位进行操作。这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写操作的相同效果。总结:位带操作是指定一块区域,作为位带映射区,将寄存器中的每一个位都可以实现映射到这里,当你操作位带映射区的时候,相当于操作寄存器里面的位。1)何为位段操作,有何用处。

2023-03-14 09:41:35 445

原创 GPIO简解即配置(寄存器版)

输入输出的数据只能是0和1,对于机器来说只有断电(0-低电平)和上电(1-高电平),复杂的信息交流需要多次数据收发,我们将8个(或者8的倍数个)数据进行组合使用。主控输出数据是为了与外设交流,是为了控制外设工作,主控的输入是外设发回的信息(比如:外设工作状态、获取到的数据等)。使用一个东西最好是有现象,这里使用输出数据来学习,因为输出数据连接到LED可用实现灯的亮灭。注意:我们的板子上电压是3.3V,其实1.7V就是低电平了,2.8V处于高电平状态了。AHB1管理的PC,所以去看看怎么开。

2023-03-13 11:00:36 1698 2

原创 新建32工程(走向嵌入式的第一步)

32新建工程(保姆式)

2023-03-10 21:32:00 122

空空如也

空空如也

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

TA关注的人

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