STM32单片机学习篇2

1.面包板

金属爪,跳线连接

2.新建工程

  • project
  • new project
  • 新建start文件夹,放置启动文件
  • 新建Libtrary文件夹,放置标准外设文件
  • 新建User文件夹
  • 打开keil软件
  • 添加三个组以及相应的c和h文件
  • 配置好工程文件

3.工程的编写

编译文件

在main.c文件中进行编写--编写头文件

复制代码
int main(void)
{
    while(1)
    {
    }
}

4.LED灯点亮步骤(使用RCC和GIPO两个外设)

  • 使用RCC开启GIPO的时钟
  • 使用GIPO_Init函数初始化GIPO
  • 使用输入输出函数控制GIPO口

rcc.h文件中可以在外设文件(Library)看RCC相应的定义;常用的库函数包括RCC AHB外设时钟控制、RCC APB2外设时钟控制、RCC APB1外设时钟控制

函数的使用及定义可以直接通过右键选择相应的跳转

GPIO需要的函数:

  • GPIO_DeInit,调用这个函数,所指定的GPIO外设会被复位
  • GPIO_AFIODeInit,可以复位AFIO外设
  • GPIO_Init,用结构体的参数来初始化GPIO口,先定义结构体变量,给结构体赋值,最后调用这个函数
  • GPIO_StrucInit函数,给结构体变量赋一个默认值
  • GPIO的读取函数、写入函数(共8个)

5.LED灯闪烁代码的编写

复制代码
#include "stm32f10x.h"                  // Device header
#include "Delay.h"                     //使用延时函数
int main(void)
{
	//开启时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	//定义变量
	GPIO_InitTypeDef GPIO_InitStructure;
	//推挽输出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	//选择引脚/0
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	//输出速率
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	//把指定端口设置为高电平
	//GPIO_ResetBits(GPIOA,GPIO_Pin_0);
	//把指定端口设置为低电平
	//GPIO_SetBits(GPIOA,GPIO_Pin_0);
	//
	//GPIO_Write(GPIOA,GPIO_Pin_0,Bit_RESET);
	while(1)
	{
		//第一种方法
		GPIO_ResetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(200);
		GPIO_SetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(200);
		//第二种方法
		//点亮LED
		GPIO_WriteBit(GPIOA,GPIO_Pin_0, Bit_RESET);
		Delay_ms(500);
		//熄灭LED
		GPIO_WriteBit(GPIOA,GPIO_Pin_0, Bit_RESET);
		Delay_ms(500);
		//第三种方法,使用了强制类型转换
		//点亮LED
		GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)0);
		Delay_ms(500);
		//熄灭LED
		GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)1);
		Delay_ms(500);
	}
}
相关推荐
默默开发16 分钟前
完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统
人工智能·学习·电脑
for_ever_love__18 分钟前
Objective-C学习 NSSet 和 NSMutableSet 功能详解
开发语言·学习·ios·objective-c
LCMICRO-133108477461 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
盐水冰8 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵8 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
逐步前行9 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
似水明俊德9 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net
0南城逆流010 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业10 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi201510 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑