stm32核心板可以点亮灯吗_coreG1【STM32F103C8T8】核心板 呼吸灯实验 之入门系列2

一、本章简介
本章以core-G1【STM32F103C8T8】核心板 呼吸灯实验 之入门系列2工程为例,介绍STM32关于GPIO的配置方法,大家通过控制STM32的GPIO引脚来使RGB灯达到呼吸灯的效果。

二、实验平台
1、硬件:core-G1核心板
2、编译软件:MDK-RAM Plus V5.26.2.0
3、STM32F10X固件库版本:V3.5
4、仿真器:QQ14A编译调试器

三、版权声明
作者:职业劝退师
声明:转载请注明出处。
纠错/业务合作:1911996023@qq.com
本例程开源资料下载地址:
http://www.enmaking.com/material/ma_4HBed59a
core-G1【STM32F103C8T8】核心板购买链接:

QQ14A编译调试器购买链接:
https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22623360017.13.407d38d5ciC9zV&id=624413749124

四、实验前提
1、在进行本文步骤前,请先阅读以下章节
1)《Cortex-M3权威指南(中文)》的第一章至第五章章节。
2)《STM32中文参考手册_V10》的第八章节。

2、在进行本文步骤前,请先实现以下章节:
1)MDK5的软件安装。安装教程链接如下
http://www.enmaking.com/article/ar_cXHjU6Uj
2)阅读《core-G1【STM32F103C8T8】核心板 跑马灯实验 之入门系列1》文章,链接如下
http://www.enmaking.com/article/ar_TTYB6zjb

五、基础知识
因为人的视觉具有余晖效应,通过改变GPIO的高电平占空比,可以达到改变LED灯亮度的效果,即可让人产生LED在慢慢熄灭或慢慢点亮的视觉效应。

六、硬件原理
1、原理图0d25ba972c1931dda956f0cced5fbd09.png

2、由上面两图可知
名称 引脚 控制方法
LEDR PB8 高电平灭、低电平亮
LEDB PC13 高电平灭、低电平亮
LEDG PB9 高电平灭、低电平亮
现在我们知道要操作哪些IO口,就可以进行程序编写了。

七、实验步骤
1、编写RGB灯驱动程序。

void LED_Init(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC->APB2ENR|=1<<3; //使能PORTB时钟
RCC->APB2ENR|=1<<4; //使能PORTC时钟
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设置为推挽输出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//最大输出速度为50MZH
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIOB->ODR|=3<<8; //PB8 PB9 输出高
GPIOC->ODR|=1<<13; //PC13 输出高
}

2、添加有关操作RGB灯的GPIO口宏定义,方便操作和调动。

#define LEDB PCout(13)#define LEDG PBout(9)#define LEDR PBout(8)

3、将驱动程序添加到自己的工程中

3bbbc888fe5bca3876671cca9a76c84e.png4、编写自己的业务代码

int main(void){
u16 i=0,j=2000;
delay_init(72);
LED_Init();while (1)
{for(i=10;i//B->G
{
LEDB=1;
LEDG=0;
delay_us(i);
LEDB=0;
LEDG=1;
delay_us(j-i);
}
LEDB=1;
LEDG=0;
delay_ms(1000);
for(i=j-10;i>10;i--)//G->R
{
LEDG=0;
LEDR=1;
delay_us(i);
LEDG=1;
LEDR=0;
delay_us(j-i);
}
LEDR=0;
LEDG=1;
delay_ms(1000);

for(i=10;i//RB
{
LEDB=0;
LEDR=1;
delay_us(i);
LEDB=1;
LEDR=0;
delay_us(j-i);
}
LEDB=0;
LEDR=1;
delay_ms(1000);
}
}

最后编译并将程序烧录到开发版中。

八、注意事项
暂无

九、实验结果
上电后任意时间内总有两个灯在亮,而且一个灯在慢慢变亮,另外一个灯则慢慢变暗。RGB灯整体显示的颜色也在变化。

c1dc02fdeb6108ebcf29bde8f8d6cf59.png

4e6f36499d83c7ccbb2ef9185a69450f.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值