stm32f1专题

STM32F1 HAL库笔记0

参考UM1850  Description of STM32F1 HAL and low-layer drivers 1、STM32Cube 包括:         • STM32CubeMX,图形软件配置工具,使用图形向导生成 C 初始化代码。         • 嵌入式软件平台,按系列提供(例如用于STM32F1的STM32CubeF1),包括:         ——STM32Cube

STM32F1+HAL库+FreeTOTS学习7——列表和列表项

STM32F1+HAL库+FreeTOTS学习7——列表和列表项 列表和列表项简介列表列表项迷你列表项 列表项API函数介绍1. 初始化列表2. 初始化列表项3. 列表末尾插入列表项4. 列表插入列表项5. 移除列表项6. 补充:FreeRTOS中操作列表和列表项的宏 列表项的插入和删除实验总结 上一期我们学习了FreeRTOS的内核中断管理以及中断屏蔽控制函数,下面我们来学习临

HAL STM32F1 通过查表方式实现SVPWM驱动无刷电机测试

HAL STM32F1 通过查表方式实现SVPWM驱动无刷电机测试 📍相关篇《基于开源项目HAL STM32F4 +DSP库跑SVPWM开环速度测试》 ✨针对STM32F1系列,硬件上没有可用的浮点单元(FPU),为了实现特定函数的浮点运算快速计算,通过查表方式来实现,以空间换速度的方式。 📍硬件电路和项目参考,立创开源广场:https://oshwhub.com/shad

FreeRTOS移植——基于stm32f1

准备 在移植之前,我们首先要获取到FreeRTOS的官方的源码包。这里我们提供两个下载链接: 一个是官网:http://www.freertos.org/ 另外一个是代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/ 这里我们演示如何在代码托管网站里面下载。打开网站链接之后,我们选择FreeRTOS的最新版本V9.0

UCOSII_STM32F1移植详细过程(一)

UCOSII_STM32F1移植详细过程(一) 1、概述2、关于µC/OS3、移植过程(文件描述与提取)1.软件工程文件夹描述2.提取工程中有用的文件3.提取ST标准外设库有用的文件2.新建、修改文件 1、概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台: 系统平台:µC/OS-II (最新V2.92版) 硬件平台:

STM32F1之OV7725摄像头·像素数据输出时序、FIFO 读写时序以及摄像头的驱动原理详解

STM32F1之OV7725摄像头-CSDN博客 STM32F1之I2C通信-CSDN博客 目录 1.  像素数据输出时序 2.  FIFO 读写时序 2.1  写时序 2.2  读时序 3.  摄像头的驱动原理 1.  像素数据输出时序         主控器控制 OV7725 时采用 SCCB 协议读写其寄存器,而它输出图像时则使用 VGA 或

STM32F1之SPI通信·软件SPI代码编写

目录 1.  简介 2.  硬件电路 移位示意图 3.  SPI时序基本单元 3.1  起始条件 3.2  终止条件 3.3  交换一个字节(模式0) 3.4  交换一个字节(模式1) 3.5  交换一个字节(模式2) 3.6  交换一个字节(模式3) 4.  代码编写 4.1  引脚初始化 4.2  引脚置高低电平封装 4.2.1  SPI写SS引脚电平 4.2

STM32F1#1(入门了解)

一、STM32开发平台和工具 1.1 STM32芯片介绍  典型微控制器由CPU(运算器、控制器)、RAM、ROM和输入输出组成。 1.2 STM32核心板   STM32核心板配件:  ①JTAG/SWD仿真-下载器       ②通信-下载模块     ③OLED显示屏 1) 通信-下载模块接口电路:  ①供电  ②下载   ③通信 2) 电源转换电路: 5V→3V

STM32F1和STM32F4应用要点抽取

1.F1内部SRAM最大64K字节, F4内部SRAM有192K字节(112K+64K+16K)。 2.F1最大封装为144脚,可提供112个GPIO;F4最大封装有176脚,可提供140个GPIO。 3.F1最多可提供5个UART串口,F4最多可以提供6个UART串口。 4.F1可提供2个I2C接口,F4可以提供3个I2C接口。 5.F1和F4都具有3个12位的独立ADC,F1可提供21

freeRTOS笔记:在stm32f1上的移植

与常玩的stm32板子下载代码不同的是:    需要的文件添加完后,还要对应修改一些文件里的内容,来适用于freertos执行  修改sys.h文件,usart.c文件,delay.c文件,具体修改地方看:stm32f1 freertos开发手册

STM32F1定时器触发AD采样+DMA中断和JATG引脚PB3 PB4作为普通IO代码

一基于STM32定时器触发AD采样+DMA中断例程实现参考 采用ADC的定时器触发ADC转换的功能,然后使用DMA进行数据的搬运!这样只要设置好定时器的触发间隔,就能实现ADC定时采样转换的功能,使能DMA转换完成中断,这样每次转换完成就会产生中断。在DMA中断程序即可实现ADC数据的读取,不用定时器干预。 /* Private typedef ------------------------

STM32F1 - SPI读写Flash

Serial peripheral interface 1> 实验概述2> SPI硬件框图初始化程序 3> STM32的SPI通信时序3.1> 时序图3.2> 文字描述3.3> 注意事项3.4> 流程图表示3.5> 程序表示接收程序:发送程序: 4> SPI的4种模式5> W25Q128存储结构块 > 扇区 > 页 6> W25Q128常用命令6.1> 读状态寄存器检测忙程序 6.2> 写

STM32F1 - I2C读写EEPROM

Inter-integrated circuit 1> 实验概述2> I2C模块 - 硬件方框图3> I2C模块 - 主发送器模式4> I2C模块 - 主接收器模式 1> 实验概述 通过STM32F103内部I2C硬件模块, 读写EEPROM - AT24C02 2> I2C模块 - 硬件方框图 3> I2C模块 - 主发送器模式 4> I2C模块

基于STM32F1的自动追光云台(代码开源)

前一段时间做了一个自动追光云台(大家感兴趣的也可以自己DIY一个呀),用来自动捕捉阳光供太阳板发电提高太阳板的发电效率,我用了一款STM32f103c8t6为主控来控制云台舵机的旋转。感光元器件使用的是光敏传感器(淘宝随便买一款啊很便宜)来感知光强,所以用ADC进行模拟量采集光强信息。下面就来介绍介绍它吧! 舵机旋转的控制 舵机的主要组成部分为伺服电机,伺服就是服从信号的要求从而做出相应动作

STM32F1 - 中断系统

Interrupt 1> 硬件框图2> NVIC 中断管理3> EXTI 中断管理3.1> EXTI与NVIC3.2> EXTI内部框图 4> 外部中断实验4.1> 实验概述4.2> 程序设计 5> 总结 1> 硬件框图 NVIC:Nested Vectored Interrupt Controller【嵌套向量中断控制器】 管理内核外设和片上外设的所有中断功能;

STM32F1 - GPIO外设

GPIO 1> 硬件框图2> 工作模式 1> 硬件框图 2> 工作模式 C语言描述 /** * @brief Configuration Mode enumeration */typedef enum{ GPIO_Mode_AIN = 0x0, // Analog Input 模拟输入 GPIO_Mode_IN_FLOATING = 0x04

STM32F1 - 源码解析SystemInit()

SystemInit 1> SystemInit( )调用位置2> SystemInit ()函数2> SystemInit ()函数 1> SystemInit( )调用位置 startup_stm32f10x_hd.s文件中: ; Reset handlerReset_Handler PROCEXPORT Reset_Handler [W

STM32F1 - 标准外设库_规范

STM32F10x_StdPeriph_Lib_V3.6.0 1> 头文件包含关系2> .c文件内部结构3> 宏定义位置4> 位掩码bit mask5> .c文件中定义私有变量6> 枚举类型定义 1> 头文件包含关系 1个头文件stm32f10x.h 就把整个MCU以及标准外设库,就管理了; 2> .c文件内部结构 /********************

STM32F1 - 启动过程

BOOT 1> 内存映射2> 启动模式3> .map文件4> 上电启动过程 1> 内存映射 Flash起始地址是 【0x0800 0000】 SRAM起始地址是【0x2000 0000】 2> 启动模式 STM32F103的BOOT1和BOOT0引脚, 决定哪块存储区,映射到4G内存空间【0x0000 0000】地址处。 例如 BOOT0引脚接地后,则

STM32F1 - 工程模板_标准外设库

Project 1> 程序框架2> 目录结构3>标准外设库 - 头文件包含关系4> 移植中出现的错误4.1> 编译器版本选择4.2> 工程宏定义 N> 资料链接 1> 程序框架 根据硬件分层,把软件分层 2> 目录结构 为方便管理,将启动文件startup_stm32f10x_hd.s, 放到CPU,按硬件分层,应放到MCU中; 3>标准外设库 -

STM32F1 - 时钟树

Clock Tree 1> 总框图2> HSE 高速外部时钟3> LSE 低速外部时钟4> HSI 高速内部时钟5> 时钟使能控制 1> 总框图 STM32F103ZET6: 2> HSE 高速外部时钟 HSE: 高速外部时钟(High Speed External clock signal) 外接晶振8MHz,为保证STM32工作稳定,选择外部晶振提供

STM32F1 - 存储器映射

Memory mapping 1> 外设内存地址映射2> GPIO寄存器映射3> 存储器访问 1> 外设内存地址映射 1> STM32F103ZET6的地址线位宽为32位,所以寻址空间为4GB (2 ^ 32 = 4GB); 2> STM32将,Flash,SRAM,外设寄存器,等都有规律的安排到4GB的空间; 2> GPIO寄存器映射 GOIOA的映射地址

RT-Thread STM32F1 RTC时钟年月日掉电丢失的解决办法

前言 STM32F1系列官方库没有保存年月日的功能,断电上电后会恢复初始值。所以根据RT-Thread官方例程操作后,年月日断电并不能保存。 硬件RTC的使用方法 1.CubeMX Settings中打开外部晶振并配置时钟源,打开RTC功能 2.首先需要打开RT-Thread Settings中RTC的驱动支持,但不要打开软件模拟RTC设备 3.drivers/board.h中打

STM32F1 时钟学习

默认配置 在STM32启动文件中默认配置初始化时钟为: ; Reset handlerReset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT __mainIMPORT SystemInit //默认时钟LDR R0, =SystemInitBLX R0 LDR

STM32F1和F4系列GPIO引脚复用和重映射配置区别

本实验采用HAL库做分析,标准库有所不同,暂时不做对照。         STM32系列单片机IO口有3个功能,一个是普通IO,一个是复用,一个是重映射功能(本质也属于复用,换别的IO实现同一个外设) 普通IO就是直接用GPIO时钟使能__HAL_RCC_GPIOB_CLK_ENABLE,使用GPIO_Init配置结构体,可以输出输入高低电平。复用:F1系列有默认复用,F4没有

STM32F1+SSD1963+4.58寸TFT屏幕移植FreeRTOS+ENWIM(已移植完,抽空补文章)

最近正在进行一个项目的开发,屏幕使用的是4.58寸长条屏幕,驱动是ST7701,该屏幕接口有点特殊,既有SPI接口,又有RGB接口,说实话刚拿到这款屏幕,我竟无从下手,问询了厂家技术支持,了解到这个屏幕需要先用SPI进行ST7701的配置,再通过RGB数据线写像素点。