推荐阅读最新更新时间:2024-03-16 15:42
32. FATFS实验讲解
一。简单回顾 二。FATFS移植步骤 最主要的是配置ffconf.h 和 编写 diskio.c,修改diskio.c里的6个函数。 三。FATFS开发函数 移植完成后就可以调用文件系统提供的API。 所有的操作完成后都要调用f_close 关闭文件。 FATFS把API分成4类: 第一类:文件的操作 如打开文件,读写文件,关闭文件等。 第二类:目录操作 比如打开目录,关闭目录,读目录 第三类:目录的管理 第四类:驱动器磁盘的管理 在doc目录下00index_e.html文件中,有所有API的描述和实例。 四。FATFS例程讲解 1. stdio.c文件按照具体的开发平
[单片机]
STM32启动文件——startup_stm32f10x_hd.s
一、启动文件的作用 (关于启动代码的作用,前面已经提到过了,这里再啰嗦一下) (1)初始化堆栈指针 SP; (2)初始化程序计数器指针 PC; (3)设置堆、栈的大小; (4)设置异常向量表的入口地址; (5)配置外部 SRAM作为数据存储器(这个由用户配置,一般的开发板可没有外部 SRAM); (6)设置 C库的分支入口__main(最终用来调用 main函数); (7)在 3.5版的启动文件还调用了在 system_stm32f10x.c文件中的SystemIni()函数配置系统时钟。 二、启动文件中提到的汇编指令 指令 作用 EQU 给数字常量取一个符号名,相当于 C 语言中的
[单片机]
【STM32】GPIO工作原理(八种工作方式超详细分析)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册(datasheet) STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、
[单片机]
ADC(STM32)
简介 STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器,它有 18 个通道,可测量 16 个外部和 2 个内部信号源 STM32F101/102 系列有 1 个 ADC,STM32F103 系列最少都拥有 2 个 ADC,STM32F103ZET 包含有 3个 ADC STM32 最大的转换速率为 1Mhz,转换时间为 1us,不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。 STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。 1、规则通道相当于你正常运行的程序 2、注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的
[单片机]
STM32之SysTick原理
一、STM32的SysTick简介 SysTick是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。 systick的作用: 在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系统崩溃。要解决这个问题,可以使用实时操作系统(RTOS). 因为RTOS以并行的架构处理任务,单一任务的崩溃并不会牵连到整个系统。这样用户出于可靠性的考虑可能就会基于RTOS来设计自己的应用程序。这样SYSTICK存
[单片机]
STM32学习之:STM32F4XX的三大主体部分
三大模块:电源、IO口、时钟。 一、 首先,我们来看一下电源,下面是电源框图 从上面我们可以看出,电源给内部的三大关键部分供电,一是给ADC供电,这块无需多说,二是电池备份域,VBAT引脚可以连接到一个可选的待机电压由电池供电或由另一个来源,当V DD是断开时保留的备份寄存器的内容和供给的RTC。还一部分主要用来给数字逻辑部分供电,像唤醒逻辑、看门狗、IO等,给内核、内存和数字外设的供电需要在VDD之后加上一个电压调整器。 接下来介绍的就是低功耗模式了 默认情况下,微控制器是在运行模式后,一个系统或一个上电复位。在运行模式的CPU的时钟HCLK和程序代码执行,一些低功耗模式是可用的,以节省电力时,不需要保持运行的中央处理器
[单片机]
如何使用STM32的USB非控制端点发送多个数据包
以下是网友提出的问题和我对这个问题的说明。 SMT32F103,根据例程Custom_HID修改,利用EP1 以EP_INTERRUPT 的方式发送包,原来的例程每次发送2个字节,现在修改后包的长度不超过64字节时发送是正常的,但当一个包长超过64字节时就发送失败,没有数据出来(程序没有死机),该改的地方都已经修改了,不知道哪个地方还没有改到位,谢谢! 现象就是 超过63字节的包死活也发不出去,而且发送包的大小 还与 CustomHID_ConfigDescriptor里面的 EP1 IN endpoint 描述里包大小有关 ,没道理啊,其他的MCU 这地方设置为8 照样发送256B 以上的包。 在Custom_HI
[单片机]
一文了解STM32启动过程
1 概述 说明 每一款芯片的启动文件都值得去研究,因为它可是你的程序跑的最初一段路,不可以不知道。通过了解启动文件,我们可以体会到处理器的架构、指令集、中断向量安排等内容,是非常值得玩味的。 STM32作为一款高端 Cortex-M3系列单片机,有必要了解它的启动文件。打好基础,为以后优化程序,写出高质量的代码最准备。 本文以一个实际测试代码--START_TEST为例进行阐述。 整体过程 STM32整个启动过程是指从上电开始,一直到运行到 main函数之间的这段过程,步骤为(以使用微库为例): ①上电后硬件设置SP、PC ②设置系统时钟 ③软件设置SP ④加载.data、.
[单片机]