ec11编码器c语言程序,EC11编码器识别程序——有时不准确,请达人指点

这段代码是针对STM32微控制器的C程序,用于读取EC11旋转编码器的状态。EC11_1_Read()和EC11_2_Read()两个函数分别检测编码器的两个通道,通过IO读取BMA1和BMB1的状态来判断旋转方向。当BMA1和BMB1同时为高时,标志位设置为1,之后检测状态变化来确定旋转是正转还是反转。最后更新Last_BMA1_status和Last_BMB1_status以跟踪上次的状态。
摘要由CSDN通过智能技术生成

本帖最后由 Lpdengsh 于 2012-5-25 10:02 编辑

不懂汇编  传个STM32的C程序  可以参考一下

/*

函数:EC11_1_Read()

功能:EC11旋转读取

参数:无

返回:EC11_1_State

为真 正转 假反转

*/

bool EC11_1_Read(void)

{

EC11_IORead();

if(BMA1&&BMB1)

flag1=1;

if(flag1==1)

{

if((BMA1==0)&&(BMB1==0))

{

if(Last_BMB1_status)

{

flag1=0;

EC11_1_State=TRUE;

}

if(Last_BMA1_status)

{

flag1=0;

EC11_1_State=FALSE;

}

}

}

Last_BMA1_status=BMA1;

Last_BMB1_status=BMB1;

return EC11_1_State;

}

bool EC11_2_Read(void)

{

EC11_IORead();

if(BMA2&&BMB2)

flag2=1;

if(flag2==1)

{

if((BMA2==0)&&(BMB2==0))

{

if(Last_BMB2_status)

{

flag2=0;

EC11_2_State=TRUE;

}

if(Last_BMA2_status)

{

flag2=0;

EC11_2_State=FALSE;

}

}

}

Last_BMA2_status=BMA2;

Last_BMB2_status=BMB2;

return EC11_2_State;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值