首页 > 其他分享 >STM32简介

STM32简介

时间:2025-01-16 13:21:09浏览次数:1  
标签:--- 引脚 简介 stm32f10x STM32 GPIOC GPIO

1、STM32是基于ARM-Cortex-M内核开发的32位微控制器。STM32分为高性能系列,主流系列,低功耗系列、无线系列:视频采用STM32F1系列
高性能系列:STM32F2, F4, F7,H7(3224内核跑分,双核微控制器=550MHz的Cortex-M7+240MHz的Cortex-M4)

2、ARM内核型号:
经典ARM处理器:ARM7、ARM9、ARM11
Cortex-A系列:Application,高端应用型,应用于手机
Cortex-R系列:Real-time,实时性
Cortex-M系列:Microcontroller 微控制器

STM32F103C8T6,另外常用的型号:STM32103RCT6
STM32F1主流系列,内核ARM-Cortex-M3内核,主频72MHz,运行内存RAM是20K,程序存储器ROM是64K。
供电:2.0-3.6V,封装:LQFP48
image-20250115211611815

image-20250115211700897

片上资源(Peripherial)
image-20250115212049007

NVIC:内核中管理终端的设备,配置中断优先级
Systick:给FreeRTOS系统提供定时进行任务切换
RCC:对系统的时钟进行配置,操作外设之前需要使能时钟
GPIO: 通用IO口
AFIO:复用IO口,复用功能端口重定义,中断端口的配置
EXTI: 外部中断,引脚电平变化触发中断,让CPU处理任务
TIM:定时器,分为高级定时器、通用定时器和基本定时器
ADC:模数转换器,STM32内置12位的AD转换器
DAC:数模转换器
DMA:直接内存访问
USART:同步/异步串口
I2C:I2C通信
SPI:SPI通信
CAN: CAN通信,汽车领域
USB: USB通信
RTC: 实时时钟
PWR:电源控制
BKP:备份寄存器
IWDG:独立看门狗
WWDG:窗口看门狗
SDIO: SD卡接口
FSMC:可变静态存储控制器
USB OTG:USB主机接口

系统结构
image-20250115212135186

芯片引脚定义:
img

1、VBAT 备用电池供电引脚
2、I/O口、侵入检测、RTC
3/4、I/O口、32.768KHz的RTC晶振
5/6、系统主晶振,8MHz 经过锁相环倍频得到72MHz
7、复位引脚,低电平复位
8/9、内部模拟电路的电源,比如ADC,RC振荡器,VSS是负极(GND),VDD是正极(3.3V)
10-19:I/O口,PA0兼具wakeup功能,唤醒处于待机模式的STM32
20:I/O口、BOOT引脚
21/22:I/O口
23/24:系统主电源
25-33:I/O口
34 37-40 I/O口,调试端口,用于调试程序和下载程序,STM32支持SWD和JTAG两种调试方式,SWD需要SWDIO和SWCLK两根线,JTAG需要JTMS,JTCK,JTDI,JTDO和NJTRST
ST-LINK是SWD调试模式
41-43 45-46: I/O口
44:BOOT0

启动配置:
image-20250115212434733

最小系统电路

image-20250115212507894

晶振电路:
8MHz的主时钟晶振-----内部锁相环倍频-------72MHz的主频,连接到5,6号引脚
32.768KHz的晶振 ----经过RTC电路的2^15分频------ 1Hz 连接到3,4号引脚

复位电路
NRST 接到 7号引脚,低电平复位
上电瞬间,电源通过电阻向电容充电,此时电容成短路状态,NRST产生低电平,最后电容充电完成形成断路状态,产生高电平

启动配置
选择BOOT引脚

下载端口
SWDIO和SWCLK接线,3.3V和GND接线

安装Keil5 MDK 软件,安装 MDK524a.EXE,ULINK
Keil MDK(Microcontroller Development Kit)是由Keil公司开发的集成开发环境(IDE),专门用于嵌入式系统开发

安装器件支持包
Keil MDK的器件支持包(Device Support Pack)是用于扩展Keil MDK对特定微控制器的支持的软件包。每个支持包包含了特定微控制器的设备定义、驱动程序和库文件等,使得Keil MDK能够识别和配置这些微控制器。

离线安装:
Pack Installer
image-20250115212609519

![Pasted image 20250107121845](assets/Pasted image 20250107121845.png)

软件注册
安装STLINK驱动USB转串口驱动

开发STM32的方式
寄存器方式,标准库函数方式、HAL库开发方式(适合快速上手)

建立基于标准库的工程
1、创建STM32的工程模板,选择器件型号
2、添加工程必要文件:启动文件 + STM32外设寄存器描述文件(stm32f10x.h)+ 配置时钟文件(system_stm32f10x.c + system_stm32f10x.h)+ 内核寄存器描述文件(core_cm3.c+core_cm3.h)
3、添加头文件路径:魔术棒--->C/C++--->Include Paths 选择Start文件夹
4、创建User文件夹,Keil添加User组,添加main.c函数,编写简单函数编译测试一下
5、连接STM32和STLINK
6、魔术棒--->Debug--->Settings--->ST-Link Debugger FlashDown--->Reset and Run

1、基于寄存器点灯

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC->APB2ENR = 0x00000010; //APB2ENR寄存器的IOPCEN位被置1,使能GPIOC的时钟
	GPIOC->CRH = 0x00300000;  // 端口配置高寄存器GPIOC->CRH,CNF和MODE配置为00和11
	GPIOC->ODR = 0x00002000; // 端口输出数据寄存器GPIOC->ODR,ODR13写1高电平,写1低电平
	while(1)
	{
		
	}	
}

2、标准库函数点灯
(1) 新建Library文件夹存放内核和外设的标准库函数
(2) 添加stm32f10x_conf.h文件,用于配置库函数头文件的包含关系
(3) 添加stm32f10x_it.c、stm32f10x_it.h文件,用于存放中断函数
(4) 魔术棒--->C/C++--->Define中粘贴 USE_STDPERIPH_DRIVER

#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif

(5) 魔术棒--->C/C++--->Include Paths 添加User和Library头文件路径

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); // 配置GPIOC的外设时钟
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP; // 引脚:模式通用推挽输出
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_13;      // 要初始化的引脚:13号引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速度
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	
	GPIO_SetBits(GPIOC, GPIO_Pin_13);
    GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	
	while(1)
	{
		
	}	
}

工程架构:
![Pasted image 20250107170410](assets/Pasted image 20250107170410.png)

main.c中包含stm32f10x.h, stm32f10x.h文件包含stm32f10x_conf.h, stm32f10x_conf.h文件包含外设库函数头文件

标签:---,引脚,简介,stm32f10x,STM32,GPIOC,GPIO
From: https://www.cnblogs.com/czy363/p/18674791

相关文章

  • 小程序云测服务简介
    MiniTest小程序云测服务简介MiniTest微信小程序云测是一套由微信测试团队自主研发,联合WeTest云真机能力,共同推出的小程序自动化测试服务。服务基于云真机,支持开发者简单快捷地实现小程序真机自动化测试和性能分析等能力。服务平台特色功能如下:丰富的自动化测试能力全面的性......
  • ArkTS简介与代码示例
    鸿蒙操作系统(HarmonyOS)是由华为技术有限公司开发的面向未来、面向全场景的分布式操作系统。它旨在为用户提供跨设备无缝协同体验,支持多种终端设备,如智能手机、平板电脑、智能穿戴设备等。为了适应不同的应用场景和硬件能力,鸿蒙提供了多语言编程的支持,其中包括ArkTS(ArkTypeScri......
  • 基于STM32的AI物联网计算实现指南
    基于STM32的AI物联网计算实现指南版权所有©深圳市为也科技有限公司摘要随着人工智能(AI)和物联网(IoT)的快速发展,智能设备在各行各业中的应用日益广泛。STM32系列微控制器凭借其高性能、低功耗和丰富的外设接口,成为实现AI物联网计算的理想选择。本文将全面介绍如何利用S......
  • 基于STM32控制VS1053B芯片的音频处理开发指南
    基于STM32控制VS1053B芯片的音频处理开发指南版权所有©深圳市为也科技有限公司摘要VS1053B是由VLSISolution推出的一款功能强大的音频编解码芯片,广泛应用于音频播放器、语音记录设备和其他嵌入式音频应用中。结合STM32微控制器,开发者可以实现高质量的音频处理功能......
  • STM32F1基于HAL库的学习记录实用使用教程分享(四、OLED IIC)
    往期内容STM32F1基于HAL库的学习记录实用使用教程分享(一、GPIO_Output)STM32F1基于HAL库的学习记录实用使用教程分享(二、GPIO_Input按键)STM32F1基于HAL库的学习记录实用使用教程分享(三、外部中断按键)文章目录往期内容前言一、IIC1.概念2.IIC作用3.IIC的特点II......
  • [数据结构学习笔记13] 递归简介(Recursion)
    递归让我们把问题由大分小,小到我们能够轻松处理。递归方法有两个要注意的点:1.递归方法会重复的被调用;2.必须有一个终止条件,否则方法调用不停,会导致stackoverflow。看下面的一个例子,这个没有终止条件,会报错!functionhello(){console.log("I'malittlefunction,shorta......
  • STM32 SPI总线结构
    一:SPI总线是什么SPI英文名为SerialPeripheralInterface翻译成中文为串行外设接口,适用于高速、双向数据传输场景。二:SPI总线的结构SPI总线可以与大量的从机相连接。SPI主机最少有4个引脚,分别为MOSI,MISO,SCK,NSS1.MOSI:为MasterOutputSlaveInput的缩写,中文解释为主机输出......
  • Spring简介
    1.1Spring介绍根据学过的Mybatis框架,得出对于框架的理解:在原生的代码基础上,用一些优秀的设计模式和设计原则封装出来的便于开发人员使用的开发体系框架存在的意义:简化原生代码的开发;框架是因为企业级开发诞生的,在一些小型项目中,框架的应用是没有必要的,因为框架的起步搭建是......
  • 江科大STM32入门——读写备份寄存器(BKP)&实时时钟(RTC)笔记整理
    wx:嵌入式工程师成长日记https://mp.weixin.qq.com/s/hDk7QaXP8yfYIj1gUhtMrw?token=1051786482&lang=zh_CNhttps://mp.weixin.qq.com/s/hDk7QaXP8yfYIj1gUhtMrw?token=1051786482&lang=zh_CNRTC是一个独立的定时器,BKP并不能完全掉电不丢失,其可以完成一些主电源掉电时,保存少......
  • 【建议搜藏】最新版IDEA2024.3.1.1简介及使用
    IntelliJIDEA介绍IntelliJIDEA是一款用于Java语言开发的集成开发环境(IDE)。IntelliJIDEA被业界公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超棒的。IntelliJIDEA由JetBra......