久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32F103舵機+電機控制機器人程序
[打印本頁]
作者:
MaxWell_nice
時間:
2019-7-13 16:20
標題:
STM32F103舵機+電機控制機器人程序
本人自己寫的程序,之前參加比賽用的,不懂就問
單片機源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "string.h"
volatile u8 aRxBuffer[100]={0};
volatile u8 RxCounter=0;
volatile u8 ReceiveState=0;
volatile u8 aRxBuffer2[100]={0};
volatile u8 RxCounter2=0;
volatile u8 ReceiveState2=0;
char flag=0;
float a=0;
float b=0;
float c=0;
float d=0;
u16 m[2]={0};
char timeflag=0;
int x=0;
int main(void)
{
u16 time1,time2;
int i=0;
delay_init(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
uart1_init(9600); //串口初始化為115200
uart3_init(9600);
LED_Init(); //LED端口初始化
TIM3_PWM_Init(2879,0); //不分頻。PWM頻率=72000000/900=80Khz
TIM_SetCompare1(TIM3,0);
TIM_SetCompare2(TIM3,0);
while(1)
{
if(flag==1)
{
delay_ms(120);
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
if(a>=1500) a--;
}
if(flag==2)
{
delay_ms(time1);
TIM_SetCompare1(TIM3,m[0]);
//TIM_SetCompare2(TIM3,m[1]);
if(m[0]>=1500) m[0]--;
}
if(flag==3)
{
//delay_ms(8000);
TIM_SetCompare1(TIM3,2735);
TIM_SetCompare2(TIM3,2735);
for(x=0;x<=7;x++)
{
delay_ms(1000);
}
TIM_SetCompare1(TIM3,0);
TIM_SetCompare2(TIM3,0);
flag=0;
}
if(timeflag==1)
{
timeflag=0;
TIM_SetCompare2(TIM3,m[1]);
if(m[1]>=1500) m[1]--;
//printf("111");
}
if( ReceiveState == 1) //電腦調試
{
for(i=0;i<=8;i++)
{
if((aRxBuffer[i]==0x4d)&&(aRxBuffer[i+1]==0x4d))
{
if(aRxBuffer[i+8]==0x00)
{
flag=0;
TIM_ITConfig(TIM5,TIM_IT_Update,DISABLE );
m[0]=(aRxBuffer[i+3]<<8)+(aRxBuffer[i+2]);
m[1]=(aRxBuffer[i+6]<<8)+(aRxBuffer[i+5]);
TIM_SetCompare1(TIM3,m[0]);
TIM_SetCompare2(TIM3,m[1]);
PBout(13)=aRxBuffer[i+4];
PBout(14)=aRxBuffer[i+7];
a=((float)m[0])/2879;
b=((float)m[1])/2879;
printf("%.2f%% : %.2f%%",a*100,b*100);
break;
}
if(aRxBuffer[i+8]==0x01)
{
m[0]=(aRxBuffer[i+3]<<8)+(aRxBuffer[i+2]);
m[1]=(aRxBuffer[i+6]<<8)+(aRxBuffer[i+5]);
PBout(13)=aRxBuffer[i+4];
PBout(14)=aRxBuffer[i+7];
flag=2;
time1=aRxBuffer[i+9];
time2=((u16)aRxBuffer[i+10])*100;
printf("time1 = %d",time1);
printf("time2 = %d",time2);
TIM_SetCompare1(TIM3,m[0]);
TIM_SetCompare2(TIM3,m[1]);
TIM5_Int_Init(time2,7199);
break;
}
}
}
memset((void *)aRxBuffer,0,100);
ReceiveState=0;
RxCounter=0;
}
if(ReceiveState2 == 1)
{
printf("ok");
if(aRxBuffer2[0]==0xFF)
{
if(aRxBuffer2[1]==0xaa) //前進
{
flag=0;
a=2159;
b=2101;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)2159)/2879;
d=((float)2101)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[2]==0xaa) //左轉
{
flag=0;
a=1958;
b=1987;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)1958)/2879;
d=((float)1987)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[3]==0xaa) //右轉
{
flag=0;
a=2159;
b=1958;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)2159)/2879;
d=((float)1958)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[4]==0xaa) //切割運動
{
flag=3;
PBout(13)=1;
PBout(14)=1;
}
if(aRxBuffer2[5]==0xaa) //停
{
flag=0;
a=0;
b=0;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)0)/2879;
d=((float)0)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[6]==0xaa) //一級加速
{
flag=0;
a=2447;
b=2447;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)2447)/2879;
d=((float)2447)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[7]==0xaa) //二級加速
{
flag=0;
a=2245;
b=2303;
TIM_SetCompare1(TIM3,a);
TIM_SetCompare2(TIM3,b);
PBout(13)=1;
PBout(14)=1;
c=((float)2245)/2879;
d=((float)2303)/2879;
printf("%.2f%% : %.2f%%",c*100,d*100);
}
if(aRxBuffer2[8]==0xaa) //螺旋運動
{
flag=1;
a=2361;
b=2303;
PBout(13)=1;
PBout(14)=1;
}
}
memset((void *)aRxBuffer2,0,100);
ReceiveState2=0;
RxCounter2=0;
}
}
}
復制代碼
所有資料51hei提供下載:
下位機程序.7z
(196.57 KB, 下載次數: 38)
2019-7-14 01:14 上傳
點擊文件名下載附件
不懂再問
下載積分: 黑幣 -5
作者:
admin
時間:
2019-7-14 01:15
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
xiaozhong1314
時間:
2019-7-14 09:20
沒注釋,有點懵
作者:
jzyhxf
時間:
2019-7-15 14:33
其他部分代碼呢
作者:
MaxWell_nice
時間:
2019-10-11 23:12
jzyhxf 發表于 2019-7-15 14:33
其他部分代碼呢
可以加我qq問,這個上傳的比較水,不好意思,961109198
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久国产日本
|
亚洲国产福利视频
|
福利一区在线观看
|
韩日精品在线观看
|
国产高清在线
|
午夜成人免费视频
|
日韩精品中文字幕一区二区三区
|
奇米av
|
在线观看国产精品视频
|
亚洲乱码一区二区三区在线观看
|
日韩欧美一区二区三区在线播放
|
日韩视频精品在线
|
大学生a级毛片免费视频
|
欧洲色综合
|
日韩综合网
|
欧美久久久久久久久中文字幕
|
中文字幕欧美在线观看
|
国产成人精品免费视频大全最热
|
欧美一区二区三区在线播放
|
91激情视频
|
va在线
|
精品一二区
|
成人精品一区二区
|
精品一区二区在线观看
|
天堂久久网
|
黄色一级视频免费
|
国际精品久久
|
男女视频在线观看免费
|
蜜桃综合在线
|
欧美在线天堂
|
亚洲欧美视频一区
|
亚洲 精品 综合 精品 自拍
|
91免费视频观看
|
99精品视频免费观看
|
精品国产欧美一区二区三区不卡
|
欧美综合一区二区
|
自拍偷拍一区二区三区
|
黑人中文字幕一区二区三区
|
国产黄色麻豆视频
|
亚洲综合国产精品
|
久久精品一区二区三区四区
|