STM32入门开发--LED模块实现跑马灯
2017-06-12 15:32
831 查看
1、案例描述
利用STM32F103ZE开发板实现控制LED灯实现跑马灯现象。
正在不断学习嵌入式开发中,博客还会持续更新,敬请关注!
2、开发环境
keil 5.14 + Windows 10 + FlyMcu
参考资料:STM32参考手册
3、实现原理
A.根据硬件接口图:
由接口图发现,开发板上面的两个LED分别接在PB5,和PE5接口处。即我们可以操作GPIO口的寄存器从而操作GPIO端口的控制器。
B、初始化(使能)PB,PE端口,查找手册发现端口PB,PE分别由APB2ENR端口的第三位和第六位控制。我们就将该位置1,其他位不变(|=操作)
APB2ENR:外设时钟使能寄存器
C、配置GPIOx端口
首先将PB5对应的20-23位清0,设置为输入模式,清0(&=操作)
其次配置LED对应的GPIOB和GPIOE端口为推挽输出,即通用推挽输出即00,输出模式速度根据实际情况定义,我这里为50MHz,即11,由于GPIOB_CRL为32位,即20-23位应设置为0011 = 3,其他位不变
PE5端口和PB5端口设置一样。
led.c:
利用STM32F103ZE开发板实现控制LED灯实现跑马灯现象。
正在不断学习嵌入式开发中,博客还会持续更新,敬请关注!
2、开发环境
keil 5.14 + Windows 10 + FlyMcu
参考资料:STM32参考手册
3、实现原理
A.根据硬件接口图:
由接口图发现,开发板上面的两个LED分别接在PB5,和PE5接口处。即我们可以操作GPIO口的寄存器从而操作GPIO端口的控制器。
B、初始化(使能)PB,PE端口,查找手册发现端口PB,PE分别由APB2ENR端口的第三位和第六位控制。我们就将该位置1,其他位不变(|=操作)
APB2ENR:外设时钟使能寄存器
C、配置GPIOx端口
首先将PB5对应的20-23位清0,设置为输入模式,清0(&=操作)
其次配置LED对应的GPIOB和GPIOE端口为推挽输出,即通用推挽输出即00,输出模式速度根据实际情况定义,我这里为50MHz,即11,由于GPIOB_CRL为32位,即20-23位应设置为0011 = 3,其他位不变
PE5端口和PB5端口设置一样。
led.c:
void led_init() { // 由结构图可知,LED0接在PB5,LED1接在PE5 // RCC_APB2ENR APB2外设时钟使能寄存器 RCC->APB2ENR |= 1<<3; // 设置第三位,即使能IOPB RCC->APB2ENR |= 1<<6; // 设置第六位,即使能IOPE // 端口配置低寄存器 GPIOx_CRL 32位 GPIOB->CRL &= 0XFF0FFFFF; // 设置第23-20位为0 ,即设置在输入模式 GPIOB->CRL |= 0X00300000; // 设置第23-22位为00 设置第21-20位为11 // 推挽输出,最大速度50MHz // ODR 端口数据输出寄存器 GPIOB->ODR = 1<<5; // 使能ODR5,由于LED灯分别接在PB5,PE5,所以要由ODR5输出 GPIOE->CRL &= 0XFF0FFFFF; GPIOE->CRL |= 0X00300000; GPIOE->ODR = 1<<5; }
相关文章推荐
- 基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(一):跑马灯
- STM32入门开发--按键模块实现按键点灯
- STM32入门开发工具整理总结
- nodejs web开发入门: Simple-TODO Nodejs 实现版
- 用GCC开发STM32入门一(使用官方库)
- IOS开发入门基本知识——实现小猫招呼UIView UILabel UIButton NSTimer层级关系
- Androidk开发入门之使用AIDL实现进程通信
- 【Arduino】开发入门【七】7段显示器实现+源代码
- [STM32入门]---利用ST提供的USB例程实现USB IAP功能
- 微信公共平台开发入门-通过有道词典实现翻译—位置消息—图片消息处理
- jsPlumb开发入门教程(实现html5拖拽连线)
- Android应用程序入门 推箱子游戏开发(一) surfaceView 实现动画效果
- nodejs web开发入门: Simple-TODO Nodejs 实现版
- Silverlight开发历程—动画(实现跑马灯效果)
- 【Arduino】开发入门【十】Arduino蓝牙模块与Android实现通信
- [STM32入门]---利用ST提供的USB例程实现USB IAP功能
- Silverlight开发历程—动画(实现跑马灯效果)
- C#(Mono)开发手机及平板应用入门篇(含WCF服务实现)
- Android开发入门之网络通信(通过HTTP协议实现文件上传)