STM32F103RCT6学习笔记1:GPIO认识—点灯

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发,有关基础知识的部分不会多唠,直接实践与运用!文章贴出代码测试工程与测试效果图:

目录

STM32F103RCT6参数解读:

GPIO的基础认识与分类:

串口相关:

定时器相关:

IIC相关:

ADC相关:

DAC相关:

SPI相关:

其余引脚:

GPIO基本输出的配置:

实验设计:

代码:

实验效果:

测试工程下载:

参考文章:


STM32F103RCT6参数解读:

根据STM32命名规则可知,通用类型,增强型,64脚

256k字节闪存,LQFP封装,工业级温度范围-40~85度。

GPIO的基础认识与分类:

拿到一块新的芯片,首先认识与分类它的GPIO是十分重要的,现在尝试认识分类一下:

表格中红色的引脚表示有且只有这一个复用功能

串口相关:

|--------|------|------|----------|------|------|
| | TXD | RXD | CTS | RTS | CK |
| USART1 | PA9 | PA10 | PA11 | PA12 | |
| USART2 | PA2 | PA3 | PA0-WKUP | | PA4 |
| USART3 | PB10 | PB11 | PB13 | PB14 | PB12 |
| USART4 | PC10 | PC11 | | | |
| USART5 | PC12 | PD2 | | | |

定时器相关:

|------|--------------------|----------------|-----------------|------|----------|------|
| | CH1 | CH2 | CH3 | CH4 | ETR | BKIN |
| TIM1 | PB13(CH1N) PA8 | PB14(CH2N) PA9 | PB15(CH3N) PA10 | PA11 | PA12 | PB12 |
| TIM2 | PA0-WKUP (CH1_ETR) | PA1 | PA2 | PA3 | | |
| TIM3 | PA6 | PA7 | PB0 | PB1 | PD2 | |
| TIM4 | PB6 | PB7 | PB8 | PB9 | | |
| TIM5 | PA0-WKUP | PA1 | PA2 | PA3 | | |
| TIM8 | PA7(CH1N) PC6 | PB0(CH2N) PC7 | PB1(CH3N) PC8 | PC9 | PA0-WKUP | PA6 |

IIC相关:

|------|------|------|------|
| | SCL | SDA | SMBA |
| IIC1 | PB6 | PB7 | PB5 |
| IIC2 | PB10 | PB11 | PB12 |

ADC相关:

|--------|----------|-----|-----|-----|-----|-----|
| | IN0 | IN1 | IN2 | IN3 | IN4 | IN5 |
| ADC123 | PA0-WKUP | PA1 | PA2 | PA3 | PA4 | PA5 |

|--------|-----|-----|-----|-----|------|------|
| | IN6 | IN7 | IN8 | IN9 | IN10 | IN11 |
| ADC123 | PA6 | PA7 | PB0 | PB1 | PC0 | PC1 |

|--------|------|------|------|------|
| | IN12 | IN13 | IN14 | IN15 |
| ADC123 | PC2 | PC3 | PC4 | PC5 |

DAC相关:

|-----|------|------|------|------|------|
| | OUT1 | OUT2 | OUT3 | OUT4 | OUT5 |
| DAC | PA4 | PA5 | | | |

SPI相关:

|------|------|------|------|------|
| | NSS | SCK | MISO | MOSI |
| SPI1 | PA4 | PA5 | PA6 | PA7 |
| SPI2 | PB12 | PB13 | PB14 | PB15 |
| SPI3 | | PB3 | | PB5 |

其余引脚:

VBAT:

备用电池供电的引脚(可接一个3V的电池,当系统断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源)

PC13-TAMPER-RTC:

IO口(可以根据程序输出或读取高低电平)或者侵入检测(做安全保障功能)或者RTC(输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲)

PC14-OSC32_IN 和 PC15-OSC32_OUT:

IO口或者接32.768KHz的RTC晶振

OSC_IN、OSC_OUT:

接系统的主晶振,一般是8Hz的(芯片内部有锁相环电路,可以对这个8Hz的频率进行倍频,最终产生72MHz的频率,作为系统的主时钟)

NRST:

系统复位引脚(N代表低电平复位的)

VSSA、VDDA:

内部模拟部分的电源(比如ADC、RC震荡器等),VSS是负极接GND,VCC是正极接3.3V

PB2:

IO口或者BOOT1引脚(BOOT引脚是用来配置启动模式的)

JTCK/SWCLK:

PA14,IO口或者调试端口,调试程序或者下载程序

JTDI:

PA15,IO口或者调试端口,调试程序或者下载程序

JTDO:

PB3,IO口或者调试端口,调试程序或者下载程序

NJTRST:

PB4,可以复用为普通IO使用

BOOT0:

用来做启动配置的

最后剩下10个引脚都是VSS\VDD相关的供电引脚

GPIO基本输出的配置:

这里先配置一下基本的输出---我们在查阅上述分类的表格可以发现,大部分搭载有各种模块功能的引脚都是PA、PB系列的,而PC0~PC5大多功能都只有ADC采样相关这一个复用功能,因此比较适合用来作为普通输入输出口使用:

实验设计:

使用PC2周期性点亮熄灭一个灯

代码:

Tip: 引脚的初始化与置位方面,可以通过 "|" (或)操作来一次性初始化同一系列的多个引脚

复制代码
#include "delay.h"
#include "sys.h"

//GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_15|GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_1);	

void LED_init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能端口时钟
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
//	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_15|GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_1;	 
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		   //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      //速度50MHz
 	GPIO_Init(GPIOC, &GPIO_InitStructure);
}

int main(void)
{
	delay_init();
	NVIC_Configuration();
	LED_init();
	
	while(1)
	{
		delay_ms(500);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);
		delay_ms(500);
		GPIO_ResetBits(GPIOC,GPIO_Pin_2);
	}
}

实验效果:

测试工程下载:

https://download.csdn.net/download/qq_64257614/88357563?spm=1001.2014.3001.5503

参考文章:

对stm32F103RCT6原理图解析(详细)_ghujlhdrx的博客-CSDN博客
STM32F103RCT6-64PIN引脚功能表格_stm32f103rct6引脚功能_FLYMCUCN的博客-CSDN博客
STM32系统结构介绍_stm32的pc13功能_藤椒鱼块的博客-CSDN博客

相关推荐
猫猫的小茶馆23 分钟前
【ARM】ARM的介绍
c语言·开发语言·arm开发·stm32·单片机·嵌入式硬件·物联网
猫猫的小茶馆24 分钟前
【PCB工艺】数模电及射频电路基础
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·pcb工艺
点灯小铭29 分钟前
基于单片机的智能药物盒设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
梓德原1 小时前
【基础】详细分析带隙型稳压电路的工作原理
单片机·嵌入式硬件·物联网
国科安芯2 小时前
航天医疗领域AS32S601芯片的性能分析与适配性探讨
大数据·网络·人工智能·单片机·嵌入式硬件·fpga开发·性能优化
小李做物联网3 小时前
【物联网毕业设计】60.1基于单片机物联网嵌入式项目程序开发之图像厨房监测系统
stm32·单片机·嵌入式硬件·物联网
贝塔实验室4 小时前
新手如何使用Altium Designer创建第一张原理图(三)
arm开发·单片机·嵌入式硬件·fpga开发·射频工程·基带工程·嵌入式实时数据库
@good_good_study4 小时前
STM32 ADC多通道采样实验
stm32·单片机·嵌入式硬件
Darken034 小时前
什么是“位带”?;在STM32单片机中有什么作用?
stm32·单片机·嵌入式硬件
清风6666665 小时前
基于单片机的智能豆浆机设计(加热打浆熬煮自动控制与防干溢保护)
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业