昊诺网站建设网络推广,烟台网站建设地址,页面跳转的方法,如何制作门户网站#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中#xff0c;原理图解析✨#xff0c;各模块分析✨以及历年真题讲解✨都在这儿哦#xff0c;欢迎大家前往订阅本专题#xff0c;获取更多详细信息哦#x1f38f;#x1f38f;#x1f38f; #x1fa94;本系列专栏 - 蓝… 【蓝桥杯嵌入式】专题正在持续更新中原理图解析✨各模块分析✨以及历年真题讲解✨都在这儿哦欢迎大家前往订阅本专题获取更多详细信息哦 本系列专栏 - 蓝桥杯嵌入式_勾栏听曲_0的博客 欢迎大家 点赞 评论 收藏⭐️ 个人主页 - 勾栏听曲_0的博客 希望本文能对你有所帮助如有不足请指正共同进步吧 大鹏一日同风起扶摇直上九万里。假令风歇时下来犹能簸却沧溟水。 目录
看原理图 设置STM32CubeMX
配置文件 初始化LED函数
实例运用 看原理图
可以看到控制LED灯的是PC8PC15由于图中最左边是VDD也就是高电平控制的所以当PC8PC15为高电平的时候LED亮为低电平的时候LED灭。同理PD2低电平关高电平开。 设置STM32CubeMX
打开我们已经建立好的工程如何初始化STM32工程中的STM32CubeMX
将PC8~PC15和PD2引脚设置为输出模式 然后点击红框中的System Core中的GPIO在弹出来的中间界面中选中PC8~PC15根据原理图的分析我们将这些引脚置为高电平high。 同理将PD2置为低电平low 然后右上角点击生成代码GENERATE CODE即可
配置文件
首先打开Keil5新建两个文件命名为led.c和led.h并加入到我们的bsp文件中去。
然后再左侧工程文件右击添加一个组Add Group... 创建成功后双击红框中的bsp找到你的bsp文件路径下的lcd.c并添加进去 接下来我们要将我们写得bsp模块代码路径添加到默认路径中去
点击魔法棒点击C/C根据图中数字引导在第五步时将bsp的路劲添加进去即可记得点OK 哦 初始化LED函数
初始化一个函数前我们首先要明白要将这个设备初始化成上面样子的如LED灯我们一般希望LED灯初始化后是全部熄灭的从这个角度来些代码
另外我们有时还希望初始化能集成一些其他功能如LED的初始化我们可以使它拥有点亮灯的功能于是有如下代码特别要理解第一句与第二句代码的关系哦
/*
LED_Disp:全灭LED灯然后点亮一个LED灯dsLED要点亮的LED灯如dsLED0x01,点亮LED1
*/
void LED_Disp(uchar dsLED)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET); //将GPIOC的所有引脚置为高电平也就是LED初始化熄灭HAL_GPIO_WritePin(GPIOC,dsLED8,GPIO_PIN_RESET); //因为控制LED灯是在8~15位上面一句代码是默认前八位置0所以我们左移8位就能将GPIOC的8~15置为0了HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); //初始化锁存器HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
} 这样我们的初始化函数就写成啦其中的参数设置为“0x01”就是LED灯全熄灭了。
实例运用
现在我们来简单的写一个流水灯吧
如果理解了初始化代码中的第一句与第二句我们就可以利用位运算来用更简单的代码实现流水灯了以下是从左至右依次亮0.5秒然后熄灭0.5秒
/*
LED_liushui:实现LED灯流水
*/
void LED_liushui(void)
{int i 1;while(1){LED_Disp(i);HAL_Delay(500);LED_Disp(0x00);HAL_Delay(500);if(i 128)i 1;elsei i1;}
}