大家晚上好,我们接着开始stm32的学习,这次我们来点亮一个led真正的实践篇。
1.在新建的工程上我们新建两个文件分别是led.c与led.h ,并将文件保存app文件下。见图12.将led.c添加到工程文件下app中,同时将app里面的头文件都添加进去。见图2 图3。
3.参考原理图可知,8个led接在PC0~PC7 ,通过原理图可以知道如果要点亮led只需要给对应端口低电平。见原理图4图5。
4..在led.c文件内我们分别对led进行初始化操作,然后写了一个点亮led的函数代码如图6。
5.在图6代码中我们能看到
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //选择管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速率
管脚可以从PC0~PC15 有16的对应管脚可以选择。其它GIOP组也是类似。
模式可以分为输入和输出,输入模式下分为:1.GPIO_Mode_IN_FLOATING 输入浮空
2.GPIO_Mode_IPU 输入上拉
3.GPIO_Mode_IPD 输入下拉
4.GPIO_Mode_AIN模拟输入
输出模式下分为 :5.GPIO_Mode_Out_OD 开漏输出
6.GPIO_Mode_Out_PP推挽输出
7.GPIO_Mode_AF_PP推挽式复用功能
8.GPIO_Mode_AF_OD开漏复用功能
速度的选择:GPIO_Speed_10MHz 最高输出速率 10MHz
GPIO_Speed_2MHz 最高输出速率 2MHz
GPIO_Speed_50MHz 最高输出速率 50MHz
6.在led初始化函数下面接着写了一个点亮led的函数,该函数试将对应的GPIO拉低从而使led点亮。如图7。
7.在led.h中我们可以这样声名函数,详见图8。
8.接着可以在主函数中调用led点亮的函数,先在主函数中对led初始化,然后在while(1)中让led_on一直循环点亮即可。见图9。
9.下载到开发板可看到led灯被点亮,我们主要是通过stm32固件手册来编写程序打开stm32固件手册可看到如图10。
好了,本次的小例子就到这里了,下次我们学习蜂鸣器。Ok大家晚安!
|