欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機根據加速度數據控制IO口,輸出電平不穩定問題求助大家
[打印本頁]
作者:
1400301635
時間:
2020-4-26 17:43
標題:
單片機根據加速度數據控制IO口,輸出電平不穩定問題求助大家
我用STC89C52單片機連接了一個加速度模塊,根據角度信息控制IO口的電平,設置了串口中斷,加速度模塊每幀數據25個字節,串口RX讀取數據后用來控制其他IO口的電平,連接了幾個二極管控制亮滅來觀察現象,然后發現IO電平會不斷地快速波動,被困住了好幾天,想求助大家這個問題是怎么回事。把中斷代碼和讀取代碼貼上來請大家指導,謝謝大家。
中斷
#include "stc_it.h"
#include "usart.h"
#include "string.h"
//串口中斷
void USART_IRQHandler(void)interrupt 4
{
static uint8_t i=0;//
if(RI)//接收完成標志
{
RI=0;//清中斷接收標志
RX_BUF[i]=SBUF;
if (i==0&&RX_BUF[0]!=0x5a) return;//檢查幀頭
i++;
if(i==25) //
{
i=0; //
Receive_ok=1;
}
}[/i][/font][i]
[font=Tahoma] }[/font][font=Tahoma][size=5]
讀取
[/size][/font][font=Tahoma]while(1)
{
if(Receive_ok)//串口接收完畢
{ Receive_ok=0;
for(sum=0,i=0;i<(RX_BUF[3]+4);i++)
sum+=RX_BUF[i];
count=0;
if(sum==RX_BUF[i])//校驗和判斷
{
if(RX_BUF[2]&0x01) //加速度數據
count=6;
if(RX_BUF[2]&0x02) //陀螺數據
count+=6;
if(RX_BUF[2]&0x04) //磁場數據
count+=6;
if(RX_BUF[2]&0x08) //四元數數據
count+=8;
if(RX_BUF[2]&0x10) //歐拉角數據
{
// LED_0=0;
rpy[0]=(RX_BUF[4+count]<<8)|RX_BUF[5+count];
rpy[1]=(RX_BUF[6+count]<<8)|RX_BUF[7+count];
rpy[2]=(RX_BUF[8+count]<<8)|RX_BUF[9+count];
Y=rpy[0]; //獲取角度
X=rpy[1];
TI=1;
LED(Y,X);
count+=6;
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1