| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 基于蓝桥杯stm32的流水灯 -> 正文阅读 |
|
[嵌入式]基于蓝桥杯stm32的流水灯 |
相信不少初学stm32的小白和我一样,不知道如何去编写stm32流水灯,去网上找资料却无奈看不懂,接下来我会用一系列通俗易懂的语言来给大家讲解如何去编写流水灯。 首先让我们先打开比赛给的资源包中的液晶驱动程序历程,并用keil4或keil5打开Project中的程序,为了使代码更加简洁,我们可以把源程序中的lcd程序删掉,至于为什么要直接用是因为这样我们不用自己配置程序环境,省了很多事,在这过程中我们首先创建一个led.h和led.c,并分别把这两个放在Inc(里面全为程序中.h)Sre(里面全为程序中.c),好都搞好了我们接下来写程序。
它是整个程序运行的库,我们编写的代码基本上是在他的基础上实现的; 然后为了方便以后的调用,我们对led进行宏定义,我们先看一下led在原理图中的位置吧 ?它的引脚在stm32f10x_giao.h的127行左右可以找到,好了,不啰嗦了,上代码
我们先引用led.h 然后在对led初始化
?如何使用请参考stm32f10x_giao.c中第108行STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c的1090行左右
?这里有四个步骤配置引脚-速度-输出模式-初始化GPIO,具体原理可以参开其他博主的博客,因为我也没搞太懂。不过我感觉stm32就是不断调用函数的过程,大家只需要记住在哪找就可以了, 在stm32f10x_giao.h的第58-86可以看到速度和模式,127-143为引脚,然后大家接下来就可以配置了
?选择全部引脚省去一个一个的麻烦,而使用最高的速度可以使程序运行更流畅,接下来是推挽输出,最后初始化GPIOC,PD2结构体的配置也是一样的,不同的地方就是引脚
我们注意观察原理图,发现led末端全部接在高电平上的,所以只能输入端为低电平led灯才会亮, 根据stm32f10x_giao.c可知GPIO_SetBits()作用为拉高电平,GPIO_ResetBits()作用为拉底电平,知道了这点,我们就可以编写我们的程序
接下来我们就可以编写使led灯亮灭的程序啦,是不是很期待呢,不说了,上代码
(说明一下led表示led灯,stae表示状态0:亮;1:灭) 呼~终于led.c程序编写完了,开心
唔~哈哈哈,此时已经是好几天后了,接下来就是重头戏啦,打起精神来~ 在写程序之前我们应先把?stm32f10x_it.c中137行左右的滴答定时器函数给删去,写在主程序里,因为这样比较容易调用,滴答定时器是本流水灯的关键。 同样,我们首先引用led头文件
然后在定义滴答定时器数据类型
由于习惯,我都是先写主函数int mian(),对于什么时候写int main()或者void main我又不是很清楚,大家可以参考
?具体代码如下
对于while()里面的可写可不写,如果你想让其中一个LED灯一直亮着,就写上 接下里就是滴答定时器的函数,对于如何用滴答定时器实现流水灯记得当时我想了半天,因为当时C语言功底还不是很扎实(当然现在也不是很扎实),最后抱着试一试的态度套用了if()else if()的逻辑,成功!以下是我写的代码
以上就是我对如何写stm32流水灯的一些见解,因为是第一次写博客,难免会有些披露,希望大家多多谅解,我也是为了更好地学习而且看市面上流水灯看不懂才写这篇文章,希望大家互相交流~ 就酱 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:50:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |