- 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小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:小猫做电路
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:liqiang9090
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏160.00元 3天前
用户:w1966891335
-
21ic下载 打赏160.00元 3天前
用户:w178191520
-
21ic下载 打赏160.00元 3天前
用户:kk1957135547
-
21ic下载 打赏40.00元 3天前
用户:WK520077778
-
21ic下载 打赏40.00元 3天前
用户:sun2152
-
21ic下载 打赏30.00元 3天前
用户:xuzhen1
-
21ic下载 打赏50.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏30.00元 3天前
用户:xzxbybd
-
21ic下载 打赏40.00元 3天前
用户:z00
-
21ic下载 打赏40.00元 3天前
用户:forgot
-
21ic下载 打赏40.00元 3天前
用户:happypcb
-
21ic下载 打赏20.00元 3天前
用户:zhaoqshan
-
21ic下载 打赏5.00元 3天前
用户:17724187683
-
21ic下载 打赏5.00元 3天前
用户:zmm1818
-
21ic小能手 打赏15.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
chenruiji 打赏1.00元 3天前
资料:血糖仪原理图
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:测试智能语音控制模块
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
cai0603 打赏3.00元 3天前
用户:CJQ_ENJOY
-
21ic小能手 打赏5.00元 3天前
全部评论(0)