当前位置: 首页 > article >正文

stm32f103 单片机(一)第一个工程

先看一个简单的
在这里插入图片描述
系统上已经安装好了keil5 与ARM包,也下载好了STM32固件库

新建一个工程,添加三个组
在这里插入图片描述
加入如下文件
在这里插入图片描述
在options 里作如下配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

准备在main.c 中写下第一个实验,点亮一个小灯。
像51单片机一样直接对引脚赋值是行不通的

在stm32f中文手册中找到这样一段话
在这里插入图片描述
在使用一个外设之前,必须打开外设的时钟
在这里插入图片描述
可以看到GPIO都在APB2中

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO还需要配置工作模式与最大输出速度

/** 
  * @brief  Configuration Mode enumeration  
  */

typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
/** 
  * @brief  Output Maximum frequency selection  
  */

typedef enum
{ 
  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz, 
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;

这样写下如下代码

#include "stm32f10x.h"

int main(void)
{
	GPIO_InitTypeDef gpioInitVar;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	gpioInitVar.GPIO_Mode = GPIO_Mode_Out_PP;
	gpioInitVar.GPIO_Pin = GPIO_Pin_1;
	gpioInitVar.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOA, &gpioInitVar);
	GPIO_ResetBits(GPIOA,GPIO_Pin_1);
	while (1)
	{
	}
}

http://www.kler.cn/a/516713.html

相关文章:

  • 2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建
  • react引入DingTalk-JinBuTi字体
  • 考研机试题:打印数字菱形
  • 宝塔Linux面板教程
  • 【数据结构】深入解析:构建父子节点树形数据结构并返回前端
  • TCP 详解
  • 【uniapp】获取上传视频的md5,适用于APP和H5
  • linux实时流量监控工具iftop详解
  • 【优选算法】8----四数之和
  • 网络安全 | 0day漏洞介绍
  • iOS 集成ffmpeg
  • 深度剖析:AI Agent 与 RPA 融合的底层技术逻辑
  • python 组播udp诊断
  • 解锁C#编程新姿势:Z.ExtensionMethods入门秘籍
  • MySQL用户授权、收回权限与查看权限
  • AI知识库如何提升电子电器企业的运营效率
  • MVCC在MySQL中实现无锁的原理
  • C语言基础------练习
  • WordPress标签导入插件
  • 时间类型数据处理:基于Python的datetime库和pandas库