自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式Linux学习——Linux常用命令(下)

注意:“tar – czvf”与“ tar czvf”是一样的效果,所以说,后面统一取消“ -”。例 1: tar 打包、 gzip 压缩。在一般模式下,可以执行以下命令。

2024-04-27 10:52:32 723

原创 嵌入式Linux学习——Linux常用命令(上)

Shell 的意思是“外壳”,在 Linux 中它是一个程序,比如/bin/sh、/bin/bash 等。它负责接收用户的输入,根据用户的输入找到其他程序并运行。比如我们输入“ ls”并回车时, shell 程序找到“ ls”程序并运行,把结果打印出来。Shell 有很多种实现,我们常用 bash。

2024-04-27 10:18:15 608

原创 PID算法学习

在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。

2024-04-26 22:30:48 831

原创 嵌入式Linux学习——Ubantu初体验

它定义了文件系统中目录、文件分类存放的原则、定义了系统运行所需的最小文件、目录的集合,并列举了不遵循这些原则的例外情况及其原因。Windows中的每一个分区都对应着一个盘符,盘符下可以存放目录与文件,而在Ubantu中没有盘符的概念,只有目录结构。实际上不同的目录可能挂载在不同的分区之下,如果想要查看当前目录位于磁盘的哪个分区,可以通过以下命令查询。比如“rw-r–r–”表示:文件的所有者对该文件有读权限、写权限,但是没有执行权限;第一个字符表示“文件类型”,它是目录、文件或链接文件等。

2024-04-26 22:30:34 277

原创 STM32之HAL开发——FSMC控制带控制器LCD(8080时序)

ILI9341的8080通讯接口时序可以由STM32使用普通I/O接口进行模拟,但这样效率太低,STM32提供了一种特别的控制方法——使用FSMC接口实现8080时序。由于FSMC外设可以用于控制扩展的外部存储器,而MCU对液晶屏的操作实际上就是把显示数据写入到显存中,与控制存储器非常类似,且8080接口的通讯时序完全可以使用FSMC外设产生,因而非常适合使用FSMC控制液晶屏。图 1 FSMC结构图。

2024-04-23 16:23:15 957

原创 STM32之HAL开发——FSMC液晶显示实验

在这个时序结构体配置中,由于我们要使用异步NOR FLASH的方式模拟8080时序,所以选择FSMC为模式B,在该模式下配置FSMC的控制时序结构体中,实际上只有地址建立时间AddressSetupTime(即ADDSET的值)以及数据建立时间DataSetupTime(即DATAST的值)成员的配置值是有效的,其它异步NOR FLASH没使用到的成员值全配置为0即可。因此,当FSMC_A0地址线为1时,实际上内部地址的第1位为1,FSMC_A1地址线为1时,实际上内部地址的第2位为1。

2024-04-23 16:23:05 896

原创 STM32之HAL开发——ILI9341液晶控制器

本液晶屏内部包含有一个液晶控制芯片ILI9341,它的内部结构非常复杂,如下图。该芯片最主核心部分是位于中间的GRAM(Graphics RAM),它就是显存。GRAM中每个存储单元都对应着液晶面板的一个像素点。它 右侧的各种模块共同作用把GRAM存储单元的数据转化成液晶面板的控制信号,使像素点呈 现特定的颜色,而像素点组合起来则成为一幅完整的图像。框图的左上角为ILI9341的主要控制信号线和配置引脚,根据其不同状态设置可以使芯片工作在不同的模式,如每个像素点的位数是6、16还是18位;

2024-04-22 11:31:34 806

原创 STM32之HAL开发——FSMC—扩展外部SRAM

在读写时序中,有几个比较重要的时间参数,在使用STM32 控制的时候需要参考,它们的介绍见下表。

2024-04-22 10:47:24 623

原创 STM32之HAL开发—— SRAM控制原理

静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。

2024-04-20 16:50:42 810

原创 STM32之HAL开发——FSMC(灵活静态存储控制器)

STM32F1系列芯片使用FSMC外设来管理扩展的存储器,FSMC是Flexible Static Memory Controller的缩写,译为灵活的静态存储控制器。它可以用于驱动包括SRAM、NOR FLASH以及NAND FLSAH类型的存储器,不能驱动如SDRAM这种动态的存储器而在STM32F429系列的控制器中,它具有FMC外设,支持控制SDRAM存储器。

2024-04-20 16:32:28 1026

原创 STM32之HAL开发——CubeMX串行Flash文件系统源码讲解

本次源码讲解是根据FatFS文件系统使用的流程进行。

2024-04-17 09:53:30 339

原创 STM32之HAL开发——CubeMX配置串行Flash文件系统

文件系统适用于SD卡,Disk磁盘等,需要我们将对应的驱动打开才可以使用。在CubeMX中,一般不需要对配置进行过多的的调整,只需要使用默认配置即可唯一值得注意的是文件名语言选项,长文件名支持选项以及扇区大小配置选项,按照如下的配置设置即可。

2024-04-16 21:07:02 430

原创 STM32之HAL开发——FatFs文件系统移植

移植 FatFs 之前我们先通过 FatFs 的程序结构图了解 FatFs 在程序中的关系网络。

2024-04-09 12:02:40 860

原创 STM32之HAL开发——串行FLASH文件系统FatFs

option 文件夹下是一些可选的外部 c 文件,包含了多语言支持需要用到的文件和转换函数。diskio.c 文件是 FatFs 移植最关键的文件,它为文件系统提供了最底层的访问 SPI Flash 芯片的方法, FatFs 有且仅有它需要用到与 SPI Flash 芯片相关的函数。diskio.h 定义了 FatFs 用到的宏,以及 diskio.c 文件内与底层硬件接口相关的函数声明。00history.txt 介绍了 FatFs 的版本更新情况。

2024-04-09 11:14:13 515

原创 STM32之HAL开发——SPI写Flash源码

这些结构体成员说明如下,其中括号内的文字是对应参数在 STM32 标准库中定义的宏:(1) Mode: 本成员设置 SPI 工作在主机模式 (SPI_MODE_MASTER) 或从机模式 (SPI_MODE_SLAVE ),这两个模式的最大区别为 SPI 的 SCK 信号线的时序, SCK 的时序是由通讯中的主机产生的。若被配置为从机模式, STM32 的 SPI 外设将接受外来的 SCK 信号。

2024-04-02 09:19:14 622

原创 STM32之HAL开发——不同系列SPI功能对比(附STM32Cube配置)

注意:F7系列以及H7系列支持Quad-SPI模式,可以连接单,双或者四条数据线的Flash存储介质。

2024-04-01 20:51:04 799

原创 STM32之HAL开发——QSPI协议介绍

OSPI是Oueued SPl的简写,是Motorola公司推出的 SPI接口的扩展,比SPI应用更加广泛。在 SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外围接口协议(即 OSPI协议)。OSPI是一种专用的通信接口连接单、双或四(数据线)SPIFlash存储介质。STM32上将种接口称为OUADSPI接口。

2024-04-01 19:38:35 583

原创 STM32之HAL开发——I2C读写EEPROM

STM32 的 I2C 外设可用作通讯的主机及从机,支持 100Kbit/s 和 400Kbit/s 的速率,支持 7 位、 10位设备地址,支持 DMA 数据传输,并具有数据校验功能,I2C 外设还支持 SMBus2.0 协议。

2024-03-27 08:24:49 1116

原创 常用芯片学习——AT24C02

AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,采用先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器,该器件通过IIC总线接口进行操作,有一个专门的写保护功能。A0-A2是用于设置从机地址的IO口

2024-03-27 08:24:40 459

原创 STM32之HAL开发——DMA转运串口数据

如果外设要想通过 DMA 来传输数据,必须先给 DMA 控制器发送 DMA 请求, DMA 收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会启动 DMA 的传输,直到传输完毕DMA2通道请求映像 Direction:传输方向选择,可选外设到存储器、存储器到外设以及存储器到存储器。它设定DMA_SxCR 寄存器的 DIR[1:0] 位的值。 ADC 采集显然使用外设到存储器模式。 PeripheralInc:如果配置为 DMA_PINC_ENABLE,

2024-03-26 09:50:49 1488

原创 STM32之HAL开发——串口配置(源码)

注意:数据寄存器有俩个一个是收一个是发,但是在标准库或者HAL库中没有特别区分开来是俩个寄存器!

2024-03-26 08:50:23 546

原创 STM32之HAL开发——串口配置(CubeMX)

对于更高级的STM32芯片可以配置独立的时钟域,外设的时钟包括总线上的挂载时钟,以及独立的内核时钟,串口所能实现的功能也更为强大。点击IO口设置页面,可以看到当前使用的串口一的引脚。如果想使用复用功能,只需要在对应的复用引脚上选择为串口引脚即可。选择时钟频率,配置为最高频率72MHZ。将单片机调试模式打开 SW模式。选择窗口一配置为异步通信模式。

2024-03-25 15:25:15 432

原创 比特率与波特率的区别

衡量通讯性能的一个非常重要的参数就是通讯速率通常以比特率(Bitrate)来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)。1“波特”可以含由多个bit。当我们把“比特率”和“波特率”等价时,默认一个码元用一个bit表示,即1“波特”=1“比特”。波特率是通讯信号调制的概念,它表示每秒钟传输了多少个码元,单位是baud/s。一个码元可以由多个二进制单位表示。

2024-03-25 11:07:46 327

原创 STM32之HAL开发——Keil调试工具介绍

在Keil工具中有许多常用的小工具,下面将会依次为大家介绍每个工具的用途。

2024-03-25 10:53:36 567

原创 PCB中常用电子器件封装学习——【一网打尽】

上图是这个世界上大概所有的封装种类,当然我们日常硬件电路设计肯定用不到这么多,接下来我将介绍几种工程上常用的封装,配以图片方便大家理解学习。在电子器件选型的时候,避免选择到一些非常难以焊接的封装电子器件。

2024-03-24 23:13:43 212

原创 STM32之HAL开发——HAL库框架介绍

HAL库借鉴面向对象的设计思想,将外设驱动封装为对象。

2024-03-24 22:59:33 616

原创 STM32之HAL开发——系统定时器(SysTick)

SysTick—系统定时器有 4 个寄存器,简要介绍如下。在使用 SysTick 产生定时的时候,只需要配置前三个寄存器,最后一个校准寄存器不需要使用。CTRL控制以及状态寄存器使用方法LOAD重装载数值寄存器VAL当前数值寄存器使用系统定时器实现,Delay的功能//时钟初始化配置/* SystemFrequency / 1000 1ms中断一次* SystemFrequency / 100000 10us中断一次* SystemFrequency / 1000000 1us中断一次。

2024-03-24 22:16:41 685

原创 STM32芯片杂谈

本文章会不定期进行更新,主要用于分享一些STM32芯片科普型的知识,不涉及代码以及寄存器配置等操作!

2024-03-23 14:56:08 217

原创 STM32之HAL开发——RCC外设&CubeMX配置时钟

RCC是Reset and Clock Control (复位和时钟控制)的缩写,它是STM32内部的一个重要外设,负责管理各种时钟源和时钟分频,以及为各个外设提供时钟使能。RCC模块可以通过寄存器操作或者库函数来配置。RCC是复位和时钟控制模块,它负责管理STM32内部的各种时钟源和时钟分频,以及为各个外设提供时钟使能。时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。不同的外设可能需要不同的时钟频率,所以RCC模块可以通过寄存器操作或者库函数来配置系统时钟和总线时钟。

2024-03-23 14:54:04 559

原创 STM32之HAL开发——启动文件详解【精华版】

【主闪存存储器】STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序,可以理解为电脑中的软件安装在这里。【内置 SRAM】芯片内置的RAM区,没有程序存储的能力了,可以理解为这个是电脑的内存条。【系统存储器】一块特定的区域,只读ROM存储器,STM32厂家在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,出厂后无法修改。

2024-03-23 13:26:37 1557

原创 STM32之HAL开发——点灯大师

注意:本次点灯操作分为俩种,一种为低级点灯——HAL库点灯,一种为高级高效点灯——寄存器点灯。

2024-03-23 11:00:47 499

原创 STM32之HAL开发——手动移植HAL库

在\Drivers\CMSIS\Device\ST\stm32f1xx\Source\Templates\ARM目录下,根据你的芯片型号选择对应的启动文件,不同容量大小的芯片,对应的启动文件也不一样。文件目录: \Drivers\CMSIS\ Device\ST\stm32f1xx\Source\Templates文件目录:STM32Cube_FW_F1_V1.8.0\Drivers\STM32F1xx_HAL_Driver template文件不用添加,也不需要全部添加,根据你所需要用到的外设进行添加

2024-03-22 21:57:25 574

原创 STM32之HAL开发——初识HAL库

自从ST公司推出HAL库来替代原有的标准库,HAL库开始慢慢的被广大STM32开发者所接受,现在已经在实际的项目开发中大量使用,HAL库使得项目的移植变得简单容易。

2024-03-22 21:40:35 1251

原创 STM32相关资料汇总

https://www.stmcu.org.cn/

2024-03-20 22:29:29 497

原创 串行通信接口之RS232、RS485与RS422

RS232,RS485,RS422都是串口通信协议家族的一员,那么他们有什么区别呢?首先让我们来了解俩个简单的知识点,TTL电平以及CMOS电平,单端传输以及差分传输。TTL电平接口电路由晶体管构成,5V表示1,0V表示0。CMOS电平接口电路由场效应管构成,3-15V表示1,0V表示0。单端传输由参考地和信号线,单端传输是在一根导线上传输与地信号的电平差,优点成本低,但是由于地线噪声影响通信,抗干扰能力差。

2024-03-20 21:42:33 553

原创 C语言指针

注意:如果你的操作系统是16位那么就是二字节,如果是32位的就是四字节,以此类推,因为指针是要指向某个地址的,所以多少位寻址就是多少字节。

2024-03-18 19:16:09 364

原创 常用芯片学习——DS3231M芯片

DS3231M是一款低成本、极其精确的 I2C 实时时钟 (RTC)。该设备集成了电池输入,并在设备主电源中断时保持准确的计时。微型电子机械系统 (MEMS) 谐振器的集成提高了器件的长期精度,并减少了生产线中的零件数量。该DS3231M的尺寸与流行的DS3231 RTC相同。RTC 维护秒、分钟、小时、星期、日期、月份和年份信息。对于少于 31 天的月份,月末的日期会自动调整,包括闰年的更正。时钟以 24 小时或 12 小时格式运行,带有 AM/PM 指示器。提供两个可编程时间警报和一个 1Hz 输出。

2024-03-17 23:12:52 691

原创 常用芯片学习——BME280芯片

BME280是基于成熟传感原理的组合数字湿度、压力和温度传感器。该传感器块采用极为紧凑的金属盖LGA封装,占地面积仅为2.5x2.5mm2,高度为0.93mm。该传感器提供I2C以及SPI接口。它的小尺寸和低功耗允许在电池驱动的设备,如手机,GPS模块或手表的实施。

2024-03-17 22:47:52 586

原创 常用电路学习——开关机电路

最近在学习的时候,碰到了开关机电路,当时不懂R16的作用,一路磕磕碰碰,终于弄懂了,是上拉电阻,现在分享以下学习经验。

2024-03-15 22:21:33 520

原创 常用芯片学习——TP4057电源管理芯片

TP4057是一款性能优异的单节锂离子电池恒流/恒压线性充电器。TP4057采用S0T23-6封装配合较少的外围原件使其非常适用于便携式产品,并且适合给USB电源以及适配器电源供电。TP4057还包括其他特性:电池温度监测,欠压锁定,自动再充电和两个状态引脚以显示充电和充电终止。

2024-03-15 20:46:56 664

NWATCH驱动程序I2C OLED STM32F103

由于我看网络上很多人藏着掖着,别人开源的东西到你这就积分收费了,我对这种行为感到恶心,而且很多版本都是SPI版本的,我手上没有六针屏幕,只有四针屏幕,我自己改成了I2C驱动以便兼容,现在无偿分享给大家。

2024-03-14

空空如也

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

TA关注的人

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