- 1
- 2
- 3
- 4
- 5
获得赏金
20.00元旋转编码器计次+利用NVIC中断+KEIL_Standard_Library开发
资料介绍
项目内容:
基于KEIL平台进行源代码编写开发
包含旋转编码器模块的函数编写(详细注释教程)
还有OLED屏的附带驱动函数和显示函数
主函数的逻辑实现语句
实现思路:
利用MCU主控板对于旋转编码器的输出的方波信号进行辨别分析,是正方波还是逆方波。以及计算出编码器旋转的速度。然后在OLED屏将数据处理辨析后的结果显示显示出来。
旋转编码器的工作原理

按码盘的刻孔方式不同分类编码器可分为增量式和绝对式两类。
增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。
旋转增量式编码器以转动时输出脉冲,通过计数设备来知道其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置。这样,当停电后,编码器不能有任何的移动,当来电工作时,编码器输出脉冲过程中,也不能有干扰而丢失脉冲,不然,计数设备记忆的零点就会偏移,而且这种偏移的量是无从知道的,只有错误的结果出现后才能知道。
工程配置
源代码
Encoder.c

开启RCC时钟,同时开启AFIO的时钟(用在外部中断通道上)
对GPIO端口进行初始化,配置输出模式,输出端口和输出速率。
AFIO选择中断引脚,对应的后面就会选择使用什么中断通道
中断通道的选择和配置:

获取增量值的函数:

中断回调函数(反转)

中断回调函数(正转)

主函数实现
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "Encoder.h"
int16_t Num; //定义待被旋转编码器调节的变量
int main(void)
{
/*模块初始化*/
OLED_Init(); //OLED初始化
Encoder_Init(); //旋转编码器初始化
/*显示静态字符串*/
OLED_ShowString(1, 1, "Num:"); //1行1列显示字符串Num:
while (1)
{
Num += Encoder_Get(); //获取自上此调用此函数后,旋转编码器的增量值,并将增量值加到Num上
OLED_ShowSignedNum(1, 5, Num, 5); //显示Num
}
}
最终效果实现图

部分文件列表
| 文件名 | 大小 |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/ | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/DebugConfig/ | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/DebugConfig/Target_1_STM32F103C8_1.0.0.dbgconf | 7KB |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/ | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/Encoder.c | 6KB |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/Encoder.h | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/Key.c | 2KB |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/Key.h | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/LED.c | 3KB |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/LED.h | |
| 旋转编码器计次+利用NVIC中断+KEIL_Standard_librabry开发/Hardware/OLED.c | 8KB |
| ... | |
- 21ic小能手打赏了20.00元
最新上传
-
21ic下载 打赏310.00元 1天前
用户:gsy幸运
-
21ic下载 打赏310.00元 1天前
用户:小猫做电路
-
21ic下载 打赏330.00元 1天前
用户:jh0355
-
21ic下载 打赏270.00元 1天前
用户:jh03551
-
21ic下载 打赏230.00元 1天前
用户:liqiang9090
-
21ic下载 打赏210.00元 1天前
用户:zhengdai
-
21ic下载 打赏60.00元 1天前
用户:sun2152
-
21ic下载 打赏60.00元 1天前
用户:xuzhen1
-
21ic下载 打赏60.00元 1天前
用户:w1966891335
-
21ic下载 打赏60.00元 1天前
用户:w178191520
-
21ic下载 打赏60.00元 1天前
用户:xzxbybd
-
21ic下载 打赏60.00元 1天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 1天前
用户:w993263495
-
21ic下载 打赏20.00元 1天前
用户:kk1957135547
-
21ic下载 打赏20.00元 1天前
用户:x15580286248
-
21ic下载 打赏10.00元 1天前
用户:MATT222
-
21ic下载 打赏10.00元 1天前
用户:BG2XTO
-
21ic下载 打赏15.00元 1天前
用户:mulanhk
-
21ic小能手 打赏5.00元 2天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
资料:全差分运算跨导放大器设计
-
zhengdai 打赏1000.00元 3天前
资料:STM32IAP使用说明
-
gsy幸运 打赏955.00元 3天前
资料:STM32IAP使用说明
-
小猫做电路 打赏855.00元 3天前
资料:STM32IAP使用说明
-
21ic小能手 打赏310.00元 3天前
用户:zhengdai
-
21ic小能手 打赏320.00元 3天前
用户:liqiang9090
-
21ic小能手 打赏310.00元 3天前
用户:gsy幸运
-
21ic小能手 打赏270.00元 3天前
用户:jh03551
-
21ic小能手 打赏240.00元 3天前
用户:小猫做电路
-
21ic小能手 打赏210.00元 3天前
用户:w178191520
-
21ic小能手 打赏90.00元 3天前
用户:kkfjenui
-
21ic小能手 打赏60.00元 3天前
用户:liao6
-
21ic小能手 打赏60.00元 3天前
用户:w1966891335
-
21ic小能手 打赏90.00元 3天前
用户:jh0355
-
21ic小能手 打赏30.00元 3天前
用户:xuzhen1
-
21ic小能手 打赏30.00元 3天前
用户:sun2152
-
21ic小能手 打赏50.00元 3天前
用户:xzxbybd
-
21ic小能手 打赏50.00元 3天前
用户:mulanhk




全部评论(0)