STM32 LED控制实验-物联网
原理:
LED的一端接入高电平,所以只要给另外一端(PC9-15)引脚输出低电平LED即可点亮
1. 实验目的
- 学习RFID模块中主控芯片基于Cortex-M3内核的STM32F103C8T6的使用
- 实现LED灯闪烁
2. 实验环境
- 硬件:RFID开发板(125K、56M、915M、2.4G),UART串口底板,ST-LINK仿真器
- 软件:Keil5
3. 实验原理
125K,13.56M,915M,2.4G这四个RFID模块上均有两个LED灯(LED0蓝色和LED1红色),本实验是使红色的LED1常亮,LED0闪烁。
(注:四个RFID的LED灯引脚兼容,均可使用如下例程)
硬件原理图如下
如上图所示,LED0与LED1引脚为低电平时LED灯点亮,引脚高电平LED灯熄灭
4. 实验步骤
- 将UART底板开关拨到Node档,将RFID模块开关拨到ON
- 将RFID模块插在UART调试底板上,注意针脚顺序,不可插反,不可错位。
125K与13.56M的RFID模块天线需要注意方向,不可插反。
正确顺序为天线板的文字印刷与模块本身文字印刷 方向一致。
如图所示,天线按照以上方向向下平移插入模块即可
- 将ST-LINK仿真器一端连在电脑,一端连在UART调试底板的JTAG接口上。
将UART底板使用Micro USB线连接到电脑
- 用Keil软件打开工程Components\第三章RFID硬件处理器实验\1_STM32_LED\MDK-ARM\STM32_LED.uvprojx
打开Keil软件,Project->Open Project
编译程序,点击按钮如图:
编译通过之后下载程序到Cortex-M3开发板,点击按钮如图:
5. 实验结果
RED灯常亮,BLUE每隔1000ms闪烁一次。
部分代码展示:
#include "led.h"
#include "delay.h"
/*初始化led所在口的时钟以及一些输入输出的相关设置*/
void Led_Init()
{
GPIO_InitTypeDef GPIO_Initstructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GPIOF口的时钟
GPIO_Initstructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;//设置输入输出引脚
GPIO_Initstructure.GPIO_Mode = GPIO_Mode_OUT;//设置为输出
GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP;//输出上拉
GPIO_Initstructure.GPIO_Speed =GPIO_Fast_Speed;//输出速度为高速
GPIO_Initstructure.GPIO_OType = GPIO_OType_PP;//输出模式为推挽
GPIO_Init(GPIOF,&GPIO_Initstructure);//GPIO的初始化
GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭
}
void Led_flash()
{
for(int i=0;i<5;i++)
{
GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭
delay_ms(300);
GPIO_ResetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置低,灯亮
delay_ms(300);
}
}
作者:泽宇-Li
- 点赞
- 收藏
- 关注作者
评论(0)