32
Rraion
Kafen Wong
展开
-
STM32(X) SD卡协议详解
SD卡原创 2022-06-08 16:53:56 · 548 阅读 · 0 评论 -
FATFS文件系统,实现基于STM32F103
文件系统键值文件系统负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件的方法。常见的文件系统FAT/FATFS(小型的嵌入式) NTFS CDFS(光盘) exFATFATFS可以移植到51,PIC,AVR,SH,Z80,H8,ARM等单片机上支持FAT12,FAT16,FAT32支持多个存储媒介,有独立缓冲区,对多个文件进行读写,对8位和16位单片机做了优化可裁剪(可以配置哪些功能要,哪些不要)层次结构解读_FS_TI原创 2022-02-17 14:01:33 · 360 阅读 · 0 评论 -
STM32(X)固件库发行笔记解读
2007.5.21创建2007.10.8library更新表格项目更新内容library文件夹. 添加了RIDE 工具链的模板项目。 2. 在所有 stm32f10x_ppp.c 和 stm32f10x_conf.h 文件中:将“assert”宏名称更改为“assert_param”。注意:如果您在应用程序中使用 FW Library V0.3 并且想要迁移到 V1.0,则必须更新您的应用程序 stm32f10x_conf.h 文件与最新的(随 V1.0 提供)stm3原创 2022-01-29 16:04:45 · 96 阅读 · 0 评论 -
STM32(X)精简库解读Drivers
概述Drivers下面是外设的驱动文件,具体可以直接参考固件库手册的具体解读原创 2022-01-29 15:01:40 · 424 阅读 · 0 评论 -
STM32(X)寄存器映射
GPIO寄存器CRHCRLIDRODRBSRRBRRLCKRAFIO寄存器EVCR原创 2022-01-25 17:58:14 · 89 阅读 · 0 评论 -
STM32(X)官方固件库基础解读
命名规则Init函数:初始化函数DeInit函数:复位函数,复位寄存器的值为初始值StructInit函数:设置结构体Cmd函数:使能或者失能外设ITConfig函数:使能或失能中断源DMAConfig:使能或失能外设的DMA接口GetFlagStatus:获得标志位信息ClearFlag:清除标志位GetITStatus:获取中断状态ClearITPendingBit:清除中断挂起位...原创 2022-01-25 15:45:00 · 566 阅读 · 0 评论 -
STM32(X)固件库解读之GPIO
对GPIO源文件和头文件的详细解读原创 2022-01-24 22:26:53 · 666 阅读 · 0 评论 -
STM32(X)精简库解读CMSIS
core_cm3.hcore_cm3.c#include <stdint.h> /* define compiler specific symbols */#if defined ( __CC_ARM ) #define __ASM __asm /*!< asm keyword for ARM Compiler */ #define __INLINE原创 2022-01-24 18:02:22 · 921 阅读 · 0 评论 -
STM32(X)资料合集
概述之后的开发都会是以固件库开发,所以阅读固件库示例代码和相关文档很重要下载官方固件库F10x系列固件库下载文档原创 2022-01-24 17:08:19 · 160 阅读 · 0 评论 -
STM32(X):ADC
概述ADC_Init()函数函数声明:void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);ADCx参数有效性assert_param(IS_ADC_ALL_PERIPH(ADCx));#define IS_ADC_ALL_PERIPH(PERIPH) (((PERIPH) == ADC1) || \ ((PERIPH) == ADC2) || \原创 2022-01-22 13:55:21 · 2417 阅读 · 0 评论 -
STM32(X)时钟系统
预备知识了解多路选择器(multiplexer)了解分频和倍频了解寄存器的基础知识,包括寄存器是什么寄存器有什么用如何操作寄存器了解时钟,包括单片机为什么要有时钟哪些电路可以作为时钟源软件配置时钟时钟框图代码void SystemInit (void){ RCC->CR |= (uint32_t)0x00000001;//使能内部高速时钟(HSION位)/* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO b原创 2022-01-21 20:02:06 · 568 阅读 · 0 评论 -
STM32(X)问题集
PLL是一个独立的时钟源吗?为什么它是作为时钟源出现原创 2022-01-21 19:22:42 · 151 阅读 · 0 评论 -
STM(X)Flash 和SRAM
概述FLASHSRAM类别EEPROMRAM特点掉电保存掉电失去读取速度慢很快和程序的关系存储程序数据及常量数据或变量数据,c文件及h文件中所有代码、全局变量、局部变量、‘const’限定符定义的常量数据、startup.asm文件中的代码它主要用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中关于程序执行stm32默认就是从flash中取指令执行的,地址是0x0800原创 2022-01-12 22:39:39 · 153 阅读 · 0 评论 -
STM32(X)待机唤醒
概述低功耗程序实现void Sys_Standby(void){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟 PWR_WakeUpPinCmd(ENABLE); //使能唤醒管脚功能 PWR_EnterSTANDBYMode(); //进入待命(STANDBY)模式 }//系统进入待机模式void Sys_Enter_Standby(void){ RCC_APB2PeriphR原创 2022-01-11 17:57:22 · 361 阅读 · 0 评论 -
STM32(X) RTC时钟
RTC时钟原创 2022-01-11 15:09:02 · 725 阅读 · 0 评论 -
STM32(X)TFT显示屏(8080协议)
注意!!!如果是5V供电的MCU,需要在信号线串接120R的电阻接口说明8080时序设置DC为命令/数据选择拉低片选读:在RD上升沿,读数据线写:在WR上升沿,写数据线9341驱动时序(初始化序列由厂家提供)...原创 2022-01-10 18:13:34 · 923 阅读 · 0 评论 -
STM32(X)8080并口
引脚CS 片选WR 写数据RD 读数据D【7:0】八位双向数据线RST 硬件复位DC 命令/数据选择时序设置DC为命令/数据选择拉低片选读:在RD上升沿,读数据线写:在WR上升沿,写数据线SSD1306显存显存大小刚好为128*64bit,分配给每个点64bit分为8页,操作是以页来操作程序显示原理使用32内部的SRAM储存要显示的数据,一次性输入到OLED的GRAMSSD1306命令字...原创 2022-01-10 17:44:26 · 931 阅读 · 0 评论 -
STM(X) 输入捕获
硬件连接外部连接一个按键,上下拉输入决定什么沿触发和电平捕捉软件实现extern u8 TIM2CH1_CAPTURE_STA; //输入捕获状态 extern u16 TIM2CH1_CAPTURE_VAL; //输入捕获值 int main(void) { u32 temp=0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 delay_init(); //延时函数初.原创 2022-01-10 13:43:52 · 361 阅读 · 0 评论 -
STM(X)PWM输出
术语ARR:计数器的值CCR:比较值PWM模式(TIMx_CCMR1_OC1M[2:0])1.PWM模式1:计数器值<比较值时:输出有效电平2.PWM模式2:计数器值>比较值时:输出有效电平电平有效性(TIMx_CCER_CC1P)0是高电平有效,1是低电平有效ARPE(对于改变ARR的时候)ARPE= 1 ,ARR立即生效ARPE =0 ,ARR下一轮生效代码实现void TIM1_PWM_Init(u16 arr,u16 psc){ GPIO_I.原创 2022-01-09 21:33:25 · 271 阅读 · 0 评论 -
STM(X)定时器基本输出
定时器框图时钟发生器:一般都是来源于APB1的倍频时基单元:计数到0或者装载值时会产生中断输入捕获:通道对应IO口,可以测量电平的宽度输出比较:可以将定时器和定值进行比较,输出PWM波输入时钟(由TIMx_SMCR的SMS[2:0]控制)内部时钟CK_INT(最常用)外部输入脚外部触发输出内部触发输入默认时钟SYSCLK= 72MAHB=72MAPB1=36M输入时钟分频和倍频首先经过分频(psc+1)再经过倍频(由预分频系数决定,也就是psc,当psc不是1.原创 2022-01-09 20:03:35 · 464 阅读 · 0 评论 -
STM32(X) 外部中断
概述stm32每一个IO口都可以作为外部中断用于GPIO的输入中断有16个,所以要进行中断线映射,注意映射是有规律的中断映射之后还要进行中断函数配置,注意存在中断函数公用的情况硬件连接仿照按键程序设计void EXTIX_Init(void){ KEY_Init();//初始化按键对应io模式 EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AP原创 2022-01-09 16:22:46 · 217 阅读 · 0 评论 -
STM32(X)单个按键输入
概述stm32内部有上拉和下拉电阻,所以不需要外接,只需要进行软件设置支持连按的思路传统51的思路不支持连按的思路设置标志位,只有在按键松开的时候标志位会进行更新#include "delay.h"#include "sys.h"#include "usart.h"#include "led.h"#include "key.h"int keytime=0;int key_up=1;int main (){ delay_init(); //延时函数初始化原创 2022-01-09 13:47:00 · 516 阅读 · 0 评论 -
STM32(X) GPIO输出
注意每一个IO口都可以作为输出端口注意在配置IO口输出的时候需要使能对应的时钟可以使用位带操作来进行IO口的设置硬件连接led正极接IO口,负极接GND软件设计led源文件(led初始化函数)void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //ʹÄ原创 2022-01-09 12:07:53 · 259 阅读 · 0 评论 -
stm32入门(四): 串口
概述STM32F10X系列一共有60个可屏蔽中断,使用IP[59]-IP[0]的高四位来设置抢占和响应ISER[8]是中断使能位,ISER[0]的bit0到bit31对应中断0-31,ISER[1]的bit0-bit[27]对应中断32-59设置中断优先级:分组→抢,响→挂起解挂中断分组分组可以分为0-4,不同的分组对应不同的抢占位和响应位,只需要设置一次高抢占可以打断低抢占抢占相同,高响应不可打断低响应抢占相同,高响应先执行抢占响应相同,谁先发生谁先执行函数:NVIC_Prior原创 2022-01-01 12:10:46 · 2333 阅读 · 1 评论 -
stm32入门(三): 中断
概述STM32F10X系列一共有60个可屏蔽中断,使用IP[59]-IP[0]的高四位来设置抢占和响应设置中断优先级:分组→抢,响→挂起解挂本芯片(RCT6)包含3个USART和2个UART32的每个GPIO都可以配置定时器中断中断类型中断分组分组可以分为0-4,不同的分组对应不同的抢占位和响应位,只需要设置一次高抢占可以打断低抢占抢占相同,高响应不可打断低响应抢占相同,高响应先执行抢占响应相同,谁先发生谁先执行函数:NVIC_PriorityGroupConfig(原创 2022-01-03 14:42:47 · 208 阅读 · 0 评论 -
stm32入门(二):流水灯(库函数版本)
准备工作首先查看硬件连接,比如说mini板是A8和D2口确定输出方式为推挽输出(可以直接输出高低电平,驱动led已经足够)led头文件#ifndef __LED_H#define __LED_Hvoid LED_Init(void);#endifled源文件#include "led.h"#include "stm32f10x.h"void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB1PeriphC原创 2021-12-04 22:29:12 · 1396 阅读 · 0 评论 -
stm32入门(一):输入输出
推挽输出和开漏输出推挽输出可以直接驱动外设,比如led这些,但是只能输出固定的电压(单片机供电电压)开漏输出必须要加上拉电阻,否则只能输出低电平,改变开漏输出的上拉电阻可以得到不同的输出电平,同时开漏输出还可以实现“线与”IO口配置配置时钟:不设置时钟,IO口就不工作,也就节能配置输入输出模式配置输出电平硬件文件夹中的库文件包含一些头文件进行一些宏定义,类似51单片机中的sbit寄存器常用的IO寄存器有4个,分别是CRL,CRH,IDR,ODRCRLCRH和C原创 2021-11-30 21:59:55 · 976 阅读 · 0 评论 -
stm32入门(零):MDK初识
MDK下载安装mdk安装支持包打开例程,打开工程文件,编译(库函数)安装flymcu(下载工具)串口下载ISP下载只能使用串口1对两个引脚接地的解释新建库函数模板原创 2021-11-30 10:58:37 · 360 阅读 · 0 评论