| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F103VET6流水灯 -> 正文阅读 |
|
[嵌入式]STM32F103VET6流水灯 |
文章目录一、实验原理1.STM32VET6简介STM32F103VET6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。 1.型号说明: 该款芯片 为 100引脚 , 512KFlash 64kSRAM LQFP 封装 32位 Cortex内核 2.简要说明:
2.地址映射,寄存器映射和GPIO初始化具体的STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)在下面博客当中都有详细解释: STM32F103系列芯片的地址映射和寄存器映射原理,GIPO初始化设置 二、实验步骤1.查看原理图根据下图我们可以看到STM32F103VET6开发板的外设LED灯是RGB三色灯,LED灯的颜色和亮灭都通过GPIOB端口控制,想要实现流水灯就需要对相应的引脚进行操作,对相应的引脚进行时钟使能配置、端口配置(高or低)寄存器配置、端口输出寄存器配置 2.时钟使能1.流水灯操作的引脚位于GPIO端口,AHB总线包含RCC时钟控制,GPIO是属于APB2的。需要使用的端口的复位和时间控制受RCC控制 2.寄存器起始地址表,查询RCC地址范围,控制的寄存器位于APB2中 3.外设时钟使能寄存器,通过基址加变址方式进行寻址,设置对应位的电平使GPIOB开启
4.把RCC_APB2ENR的位3赋值为1,就是开启GPIOB时钟,对应代码:
3.LED灯的点亮熄灭根据前面的LED原理图可知PB端口引脚的不同控制着LED的颜色不同,而引脚的高低电平控制等的亮灭,所以可以根据一种颜色的亮灭控制就可以以同样方法控制其它颜色的亮灭 下面以PB_5端口显现LED_R为例 1.配置引脚PB5,使用的寄存器是GPIOB_CRL。下面我们来寻找这个寄存器的地址。配置工作模式 那么需要的寄存器是低位的寄存器GPIOB_CRL,它的地址是0x4001 0c00,端口号为5 00:通用推挽输出模式 由此可得:
这样就把对应的IO口输入输出模式调好了 2. 设置输出值 查看GPIO输出文档(GPIOx_ODR)
所有端口设置成1,可以实现LED的熄灭了
4.延时函数我们知道程序执行指令的速度是很快的,若需要将灯的亮灭以及颜色的切换让人眼可观就需要设置延时函数,延时函数的延时时间跟stm32的晶振频率有关,程序执行指令需要一定时间,以此可以设计一个简单函数:
当t=1000000时就延时一段时间,该函数延时t较小时不太精确,考虑到本实验对延时精度要求不高,可以采用该延时方法 通过这个延时函数就可以实现亮灭延时,流水灯再在亮灭基础上变化颜色 三、C语言实现流水灯1.创建项目
创建项目出现弹窗,勾选setup项和core项 2.项目配置1.在output里选择create hex file 3.C语言代码编写source group里创建led.c,并写入代码,注意项目结构,使用的引脚是PB0,PB1,PB5 1.首先宏定义对应GPIO各个配置端口,以及时钟RCC配置端口地址指针方便下面调用
2.时钟使能
3.配置PB0,1,5引脚模式
4.配合延时函数循环每个颜色灯的亮灭
整体代码:
四、烧录程序使用驱动进行烧录操作 运行结果: 五、小结GPIO初始化步骤 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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 21:48:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |