文章目录
STM32F103C8T6的GPIOx端口的各寄存器地址和详细参数
1.STM32F103C8T6的GPIOx端口的各寄存器地址
对于STM32F103C8T6,每个GPIO端口都有一组寄存器,用于配置和控制该端口的功能。以下是GPIOx端口的寄存器地址和详细参数的简要概述:
GPIOA寄存器地址和详细参数:
GPIOA寄存器基地址:0x4001 0800
GPIOA输入数据寄存器(IDR):GPIOA + 0x08
GPIOA输出数据寄存器(ODR):GPIOA + 0x0C
GPIOA数据方向寄存器(DDR):GPIOA + 0x10
GPIOA配置寄存器低(CRL):GPIOA + 0x00
GPIOA配置寄存器高(CRH):GPIOA + 0x04
GPIOB寄存器地址和详细参数:
GPIOB寄存器基地址:0x4001 0C00
GPIOB输入数据寄存器(IDR):GPIOB + 0x08
GPIOB输出数据寄存器(ODR):GPIOB + 0x0C
GPIOB数据方向寄存器(DDR):GPIOB + 0x10
GPIOB配置寄存器低(CRL):GPIOB + 0x00
GPIOB配置寄存器高(CRH):GPIOB + 0x04
依此类推,对于其他GPIO端口,地址和寄存器的结构是类似的。
每个GPIO端口具有相同的寄存器结构,包括输入数据寄存器(IDR)、输出数据寄存器(ODR)、数据方向寄存器(DDR)和配置寄存器(CRL和CRH)。这些寄存器的具体功能如下:
输入数据寄存器(IDR): 该寄存器用于读取端口的输入电平状态。
输出数据寄存器(ODR): 该寄存器用于设置端口的输出电平状态。
数据方向寄存器(DDR): 该寄存器用于配置端口的引脚方向,可以设置为输入或输出。
配置寄存器(CRL和CRH): 这些寄存器用于配置引脚的具体功能(例如模式、速度、上拉下拉等),每个引脚对应一个位字段,可以单独配置。
详细的配置寄存器位定义和相关设置可以在STM32F103的参考手册中找到,手册提供了每个寄存器的位字段和功能描述,以及推荐的设置值。请务必参考官方文档来获取最准确和最新的信息。
2.STM32F103C8T6的电路原理图
二、C语言代码实现(Keil)
1.创建新文件并使用STM32F103C8芯片
2.在创建的工程中添加startup_stm32f10x_md.s文件
3.创建main.c文件并便编写程序
4.选择输出.hex文件
5.进行编译并输出.hex文件
三、Proteus软件仿真
1.创建并画出仿真
此处使用的是STM32F103C6芯片,可正常使用
加入LED灯
2.画出仿真图
3.配置电网
4.导入HEX文件
5.运行结果
嵌入式1 - Proteus 8 Professional
四、实物演示
1.实物连线
实物连接时需对应好每个引脚的位置,否则会导致实物板无法正常运行
连接引脚:
VCC-3V3
3V3-PA10
RXD-PA9
GND-GND
红灯-PB0
绿灯-PA0
黄灯-C15
将相应的引脚连接成功后即可开始烧录
2.烧录
在此处需要选择DTR的低电平复位,RTS高电平进BootLoader
然后点击开始编程
3.运行结果
VID_20230926_170227
总结
这是我第一次进行有关STM32的比较全面的编程。在编程过程中还有着不小的困难。在学习之前就要了解STM32的芯片系列,引脚功能、外设和时钟等功能。了解如何设置开发环境,选择合适的开发工具如(Keil MDK或STM32CubeIDE)、如何创建和配置项目,以及如何下载和调试代码。烧录工具也有着不熟悉的问题。在串口以及跳线上还不熟悉。总体来说,在STM32上还有着较大的困难,还要继续学习。