標(biāo)題:
stm32f103ret6單片機(jī)增量式速度傳感器程序
[打印本頁]
作者:
夢古無疆
時(shí)間:
2019-1-27 10:49
標(biāo)題:
stm32f103ret6單片機(jī)增量式速度傳感器程序
某校一次·實(shí)訓(xùn)的題目
上傳出來分享一下
是600脈沖每轉(zhuǎn)的傳感器
*正交編碼器模塊
*輸入引腳PB->6 PB->7
*2倍頻上升沿、下降沿均捕捉,所得數(shù)值為編碼器本身分辨率x2
*數(shù)值由串口1打印出來,接上液晶也會(huì)顯示結(jié)果
單片機(jī)源程序如下:
#include "STM32F1.h"
u16 Parameter = 600; //設(shè)置編碼器線數(shù)
u16 Count,flag=0;//
int one_s=0,rpm = 0,rpmx = 0,j = 0,f = 0,i = 0,k=0;
int main(void)
{
SystemInit(); //System init.
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
delay_init(72);//Delay init.
Lcd_Init();
TIM4_Init(); //初始化TIM4編碼器模式
LED_Init();
TIM3_Int_Init(5999,7199);//每半秒刷新一次,計(jì)算出轉(zhuǎn)速
LCD_LED_SET;//通過IO控制背光亮
Lcd_Clear(BRRED);//清屏
DisplayButtonDown(0,75,128,100);
DisplayButtonUp(0,75,128,100); //x1,y1,x2,y2
DisplayButtonUp(15,38,113,58); //x1,y1,x2,y2
Gui_DrawFont_GBK16(16,0,BLUE,BRRED, "基于單片機(jī)的"); //點(diǎn)
Gui_DrawFont_GBK16(36,20,BLUE,BRRED, "轉(zhuǎn)速表"); //點(diǎn)
Gui_DrawFont_GBK16(20,40,RED,BRRED, "單位:轉(zhuǎn)/min"); //點(diǎn)
Gui_DrawFont_GBK16(20,110,GREEN,BRRED, "方向:"); //點(diǎn)
Gui_DrawFont_GBK16(90,80,BLUE,BRRED, "."); //點(diǎn)
LCD_ShowNum24(10,80,0,5,RED); //預(yù)顯示正數(shù)部分
LCD_ShowNum24(106,80,0,1,RED); //預(yù)顯示小數(shù)部分
for(;;)//一直讀取數(shù)據(jù)
{
k++;
if(k>50)//LED閃動(dòng),為了好玩
{k=0;
LED=!LED;
}
if (0x11==TIM4->CR1) //判斷正反 由CR1寄存器顯示
Gui_DrawFont_GBK16(68,110,RED,BRRED, "正");
else
Gui_DrawFont_GBK16(68,110,RED,BRRED, "反");
if(i != rpmx)//轉(zhuǎn)速刷新 if語句是為了在數(shù)據(jù)不變的情況下使LCD不更新 減少刷新 使其更美觀
{
i=rpmx;
LCD_ShowNum24(10,80,i,5,RED); //顯示正數(shù)部分
LCD_ShowNum24(106,80,i,1,RED); //顯示小數(shù)部分
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
增量式編碼器.rar
(308.76 KB, 下載次數(shù): 29)
2019-1-27 10:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1