STM32F407控制RGB灯

STM32F407控制RGB代码解析

作为一名嵌入式新手,就从简单的程序开始写起吧。来日方长,不慌不忙。

RGB,即Red、Green、Blue 3种颜色的灯,根据亮度不同、颜色的混合,最多可以实现256种颜色。

STM32中需要自己动手编程的文件主要是C文件、头文件和main主函数。

1、C文件的程序
C文件中存放的是源程序文件,以我个人对C文件程序的理解是,它就像是一个生产零件的工厂,在这里我们会写下各种函数,就相当于生产出各种零件,每种零件都有自己的作用,即每个函数都有自己的作用,把这些零件组装起来就是成品,而我们把这些函数在main函数程序中组装起来,就可以实现我们想要的功能。

void LED_GPIO_Config(void) //自己写个函数名,能看出来这个函数是干嘛的
{

	GPIO_InitTypeDef GPIO_InitStructure;              //定义GPIO结构体,这个结构体在固件库中已经写好

	RCC_AHB1PeriphClockCmd(LED1_GPIO_CLK|LED2_GPIO_CLK|LED3_GPIO_CLK, ENABLE); //打开3个灯的GPIO时钟
													   
	GPIO_InitStructure.GPIO_Pin = LED1_PIN;	          //LED1的引脚,即红灯的引脚
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;     //输出模式
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;    //输出类型为推挽输出
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;      //配置为电阻上拉
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  //输出速度为2MHz
    GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);	  //把以上配置好的参数写进寄存器里,这就是调用固件
                                                      //库函数色好处,不用操作最底层的寄存器
														   
	GPIO_InitStructure.GPIO_Pin = LED2_PIN;	          //前面的配置都不变,只需要改下引脚,这个是绿灯
    GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);   //把以上配置好的参数写进寄存器里
														   
	GPIO_InitStructure.GPIO_Pin = LED3_PIN;	          //前面的配置都不变,只需要改下引脚,这个是蓝灯
    GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStructure);	  //把以上配置好的参数写进寄存器里

}
2、头文件里
头文件里放的是各种函数名字,就比如上述C文件的函数名void LED_GPIO_Config(void) 就需要放到头文件里进行声明,以便调用。
我想强调的是,一般写程序都是把关于硬件的部分(引脚)进行宏定义操作,这样会很方便程序移植,如下图:这些一般都是在头文件里写的。在这里插入图片描述
3、main主函数
它就像是组装函数的车间,把我们在C文件里写的函数名字在这调用就可以了,只是名字哦。

                                                                                  Jhw  2020.3.6
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值