stm32例程_stm32初学例程

这篇博客介绍了STM32的学习过程,包括GPIO端口操作实验,Time2定时器实验和USART串口通信实验。在GPIO实验中,通过配置GPIOB的PB12到PB15控制LED灯的亮灭。Time2实验中,利用TIM2进行定时,使LED灯按特定时间闪烁。最后,通过USART1实现中断接收和发送数据,完成串口通信功能。
摘要由CSDN通过智能技术生成

学习STM32

必备的工具:1.KEIL5/4

2.32开发板

71f99fc00cd769406f044cc73847ddb2.png

keil5

32c6515e5b2c3802a0b78ea7d0b128f7.png

开发板

1 GPIO Test( 端口操作实验 )

GPIO 实验是最简单, 也是一般最先开始的一个实验, 他可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上, 从而节省了在搭建过程中所消耗的时间和精力。建议, 当该实验顺利完成后,作为一个模板, 供以后实验使用,确保您可以将精力花费在需要实现的功能上。

关于环境的搭建,您可以参考 《EWARM_STM32_Use_Instructions 》;本实验需要实现:四个 LED 的简单控制。

1.1 硬件设计:

1. 确认硬件连接:

根据开发板原理图,如图,得知:与 LED 相连的有 PB12、 PB13、 PB14、PB15 ;以下就是对这四个引脚的配置,及相关操作;

1.2 软件设计:

//main() 程序开始

1.2.1 头文件:

#include "stm32f10x.h"

#include "main.h"

//#include "k_gpio.h"

//已经转移到

main 函数中;

#define

VECT_TAB_RAM

//选择在

RAM

中调试;

//main() 函数:

1.2.2 系统初始化

SystemInit();

// 选择系统运行时钟,默认是

72MHz ,可以调试跟踪进行修改;

#ifdef

#else

VECT_TAB_RAM //设置仿真调试区域,这里设置成在 // Set the Vector Table base location at 0x20000000 NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); /* VECT_TAB_FLASH */

RAM

中;

· Set the Vector Table base location at 0x08000000 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

#endif

1.2.3 GPIO 配置

· 首先,选择 GPIOB 外设时钟;只有选择好时钟后,才可以进行下面的配置;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

// 配置端口,开始时,不需要知道所有的细节,从字面上理解就 ok; gpio.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; gpio.GPIO_Speed = GPIO_Speed_50MHz;

gpio.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOB, &gpio);

GPIO_SetBits(GPIOB, GPIO_Pin_12);

//将端口拉高,灭

LED

灯;

GPIO_SetBits(GPIOB, GPIO_Pin_13);

GPIO_SetBits(GPIOB, GPIO_Pin_14);

GPIO_SetBits(GPIOB, GPIO_Pin_15);

如此, GPIOB 连接 LED 的四个端口都配置好了;

1.2.4 GPIO 操作

While(1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_12);

Delay(0xffffff);

G

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值