# define step motor _ io ctrl _ PHASE 0x 13 staticintstep _ FD =-1;
char * STEP _ DEV = "/DEV/exio/0 raw ";//定義壹個指針指向步進電機的驅動。
/********* A,AB,B,BC,C CD,D,DA ***/
char stepdata[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x 90 };//對應於每個相位的值
Void Delay(int t) //延遲函數{ int I;
for(;t & gt0;t -)
for(I = 0;我& lt400;i++);}
/***************************************************** ***********/
int main(intargc,char **argv) {
int I = 0;
if((step_fd=open(STEP_DEV,O _ WRONLY))& lt;0){ printf("打開/dev/exio/0raw設備時出錯\ n ");返回1;} /*
打開設備驅動,因為LINUX把所有設備都模擬成文件。step_fd=open(STEP_DEV,0_WRONLY)實際調用的函數是:
static int s3c 2410 _ exio _ open(struct inode * inode,struct file * filp)//驅動程序中的設備開啟器*/
for(;;) {
for(I = 0;我& ltsizeof(step data)/sizeof(step data[0]);i++) { ioctl(step_fd,STEPMOTOR_IOCTRL_PHASE,step data[I]);}
/*程序進入無限循環,使電機保持轉動,無需人為停止。
*第二層for語句循環壹次,即電機旋轉壹次。函數ioctl()對應的是函數號* S3C2410 _ EXIO _ ioctl()。
*而且這個函數最終會調用函數do _ step motor _ run((char)arg);讓步進電機轉動。*/
printf(" Delay(100)\ n ");延時(100);}
關閉(step _ FD);//在程序結束時關閉設備printf("步進電機開始運行!\ n ");返回0;}本文來自百度文庫,可以搜索壹下,回答比較詳細!