标题:
STM32正交增量编码器源码 外部中断与查询法2个程序
[打印本页]
作者:
szyinbo
时间:
2018-11-4 08:32
标题:
STM32正交增量编码器源码 外部中断与查询法2个程序
STM32正交增量编码器
单片机源程序如下(外部中断法):
#include "STM32F1.h"
u16 Parameter = 20; //输入编码器线数
u16 Count,Old_Temp,Temp;
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LCD_Init(); //初始化LCD
Encode_Init();
POINT_COLOR=BLUE; //字体颜色
LCD_ShowString(75,150,200,16,16,"Count:");
LCD_ShowNum(125,150,0,1,16);
LCD_ShowNum(135,150,0,1,16);
LCD_ShowNum(145,150,0,1,16);
LCD_ShowNum(155,150,0,1,16);
while(1)
{
Old_Temp = Temp; //获取先前数值
Temp = Count; //获取当前数值
if(Old_Temp != Count) //如果先前的计数值与当前计数值不相等,说明编码器已转动打印当前数值
{
printf("数值 = %d\n",Count); //串口打印数值*/
LCD_ShowNum(125,150,Count/1000,1,16); //液晶显示数值
LCD_ShowNum(135,150,(Count%1000)/100,1,16);
LCD_ShowNum(145,150,(Count%100)/10,1,16);
LCD_ShowNum(155,150,Count%10,1,16);
}
}
}
复制代码
查询法:
#include "STM32F1.h"
u16 Parameter = 512; //输入编码器线数
u16 Count,Old_Count;
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LCD_Init(); //初始化LCD
TIM4_Init(); //初始化TIM4为编码器借口模式
POINT_COLOR=BLUE; //字体颜色
LCD_ShowString(75,150,200,16,16,"Count:");
LCD_ShowNum(125,150,0,1,16);
LCD_ShowNum(135,150,0,1,16);
LCD_ShowNum(145,150,0,1,16);
LCD_ShowNum(155,150,0,1,16);
while(1)
{
Old_Count = Count; //获取先前的计数值
Count = TIM4->CNT; //获取编码器当前数值
if(Old_Count != Count) //如果先前的计数值与当前计数值不相等,说明编码器已转动打印当前数值
{
printf("数值 = %d\n",Count); //串口打印数值
LCD_ShowNum(125,150,Count/1000,1,16); //液晶显示数值
LCD_ShowNum(135,150,(Count%1000)/100,1,16);
LCD_ShowNum(145,150,(Count%100)/10,1,16);
LCD_ShowNum(155,150,Count%10,1,16);
}
}
}
复制代码
所有资料51hei提供下载:
STM32正交编码器_外部中断.rar
(301.98 KB, 下载次数: 114)
2018-11-4 08:32 上传
点击文件名下载附件
下载积分: 黑币 -5
STM32正交编码器.rar
(300.49 KB, 下载次数: 62)
2018-11-4 08:32 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
zhyl1243
时间:
2019-7-4 17:53
多谢了
作者:
antheavie
时间:
2019-9-21 09:32
非常感谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1