文章目录
一、搭建STM32的开发环境
1.安装STM32CubeMX
下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
2.安装完成后,打开STM32CubeMx,选择help–>manage embedded…安装固件库
下面第一个按钮是从本地安装(已经在本地下载了对应的固件库),Install now是通过网络下载,一般不推荐这种方式。
二、利用工具实现LED灯的点亮
1.分析相应的原理图
2.使用CubeMX生成相关代码
①选择New Project,然后选择芯片类型,这里我所用的是STM32F103C8
②配置系统调试接口sys,选择Serial Wire
③配置引脚功能
在芯片上找到对应的引脚,点击它,选择对应的功能。此处选择的引脚PA5为输出模式。
④接着选择GPIO,GPIO相关设置
GPIO output level:有low和high两种选择,一般选择low
GPIO mode:推挽输出和开漏输出两者模式,两者模式的区别在于推 挽输出中1代表VCC,0表示GND;开漏输出中1代表高阻态,0代表GND。
GPIO Pull-up/Pull-down:输入需要上下拉,输出一般没有上下拉
Maxinum output speed:最大的输出速度,一般选择low就可以了。
配置好后,选择Project Manager
设置工程名字,Project Name,并且Toolchain/IDE选择MDK-ARM,Version选择V5
选择GENERATE CODE,就会生成相应的代码,并且会弹出一个对话框,点击Open Project,就会使用Keil5打开工程。
3.使用Keil进行编译下载
在keil中进行编译
4.实验现象
连接对应管脚的LED就被点亮了。
三、利用keil的软件仿真的逻辑分析仪功能观察GPIO的波形图
1、首先,设置options for target:
Target页的设置:
Debug页的设置:
按照以上步骤设置后点击OK,完成设置
2、点击Debug,进入调试界面:
3、选择逻辑分析仪
4、选择要观察的引脚:
添加要观察的引脚:
每一个引脚都要相应的设置bit。
5、运行程序:
四、编写代码
1.创建新工程并编写代码
首先创建新的工程,
创建完工程后,添加 asm 汇编文件,并添加如下的代码
;RCC寄存器地址映像
RCC_BASE EQU 0x40021000
RCC_CR EQU (RCC_BASE + 0x00)
RCC_CFGR EQU (RCC_BASE + 0x04)
RCC_CIR EQU (RCC_BASE + 0x08)
RCC_APB2RSTR EQU (RCC_BASE + 0x0C)
RCC_APB1RSTR EQU (RCC_BASE + 0x10)
RCC_AHBENR EQU (RCC_BASE + 0x14)
RCC_APB2ENR EQU (RCC_BASE + 0x18)
RCC_APB1ENR EQU (RCC_BASE + 0x1C)
RCC_BDCR EQU (RCC_BASE + 0x20)
RCC_CSR EQU (RCC_BASE + 0x24)
;AFIO寄存器地址映像
AFIO_BASE EQU 0x40010000
AFIO_EVCR EQU (AFIO_BASE + 0x00)
AFIO_MAPR EQU (AFIO_BASE + 0x04)
AFIO_EXTICR1 EQU (AFIO_BASE + 0x08)
AFIO_EXTICR2 EQU (AFIO_BASE + 0x0C)
AFIO_EXTICR3 EQU (AFIO_BASE + 0x10)
AFIO_EXTICR4 EQU (AFIO_BASE + 0x14)
;GPIOA寄存器地址映像
GPIOA_BASE EQU 0x40010800
GPIOA_CRL EQU (GPIOA_BASE + 0x00)
GPIOA_CRH EQU (GPIOA_BASE +