《基础例程1 - 三色LED控制》
先介绍一下32的代码主要结构:一个功能完整的工程由一个main.c文件和若干个***.c文件组成,其中每个***.c文件对应着***.h文件,***.c文件主要是将各种外设实现的功能封装在一个***.c文件中,main函数通过调用多个***.c文件实现一个比较完善的功能。代码结构层次清晰。下面为《基础例程1 - 三色LED控制》的具体详情:
1.Main函数中要对外设进行初始化,以及功能程序代码编写,该例程main函数如下图:
- 外设初始化(LED初始化)
该例程主要是对GPIO的控制,要实现 GPIO 的控制,需要多GPIO进行初始化。
初始化步骤分为:a.使能端口时钟——》b.引脚定义——》c.设置引脚输出类型——》d.初始化GPIO
b.由ufun板的原理图中可以得知RGB灯对应的GPIO分别为PA0、PA1和PA2,所以引脚定义时要对Pin0~2进行定义。
c.设置GPIO输入输出类型一共分为8类:输入模式
-输入浮空(GPIO_Mode_IN_FLOATING)
-输入上拉(GPIO_Mode_IPU)
-输入下拉(GPIO_Mode_IPD)
-模拟输入(GPIO_Mode_AIN)
输出模式
-开漏输出(GPIO_Mode_Out_OD)
-开漏复用功能(GPIO_Mode_AF_OD)
-推挽式输出(GPIO_Mode_Out_PP)
-推挽式复用功能(GPIO_Mode_AF_PP)
该例程用于控制RGB灯,设置为推挽输出模式。
d.初始化GPIO
下图为该例程LED初始化部分:
- 了SysTick也叫时钟滴答,其实质就是一个递减的定时器。在历程中用于毫秒级的延时。
3.例程演示效果:绿、蓝、红灯一次点亮,间隔为1秒钟。
电源指示灯和RGB灯亮度有点高就用纸片贴住了,这样拍摄效果会好点
文中如果有讲述得不对的地方望指出,本人必将虚心接受,共同学习。或者有什么好的想法也可以评论分享,欢迎大家共同学习进步。
此内容由EEWORLD论坛网友1nnocet-原创,如需转载或用于商业用途需征得作者同意并注明出处