|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、本章简介 本章以core-G1【STM32F103C8T6】核心板 呼吸灯实验 之入门系列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_4HBed59acore-G1【STM32F103C8T6】核心板购买链接:https://item.taobao.com/item.htm ... amp;id=625712740336
QQ14A编译调试器购买链接: https://item.taobao.com/item.htm ... amp;id=626843731543
四、实验前提 1、在进行本文步骤前,请先阅读以下章节 1)《Cortex-M3权威指南(中文)》的第一章至第五章章节。 2)《STM32中文参考手册_V10》的第八章节。
2、在进行本文步骤前,请先实现以下章节: 1)MDK5的软件安装。安装教程链接如下http://www.enmaking.com/article/ar_cXHjU6Uj2)阅读《core-G1【STM32F103C8T6】核心板 跑马灯实验 之入门系列1》文章,链接如下http://www.enmaking.com/article/ar_TTYB6zjb
五、基础知识 因为人的视觉具有余晖效应,通过改变GPIO的高电平占空比,可以达到改变LED灯亮度的效果,即可让人产生LED在慢慢熄灭或慢慢点亮的视觉效应。
六、硬件原理 1、原理图
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;//最大输出速度为50MZHGPIO_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、将驱动程序添加到自己的工程中 4、编写自己的业务代码int main(void){u16 i=0,j=2000;delay_init(72);LED_Init();while (1){for(i=10;i<j;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<j;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灯整体显示的颜色也在变化。 |
|