基于嵌入式ARM Linux步进电机驱动程序的设计
要用操作所用到的IO口,就要设置他们所用到的寄存器,我们需要调用一些现成的函数或者宏,比如:
/*每个port有16个引脚,而每个引脚由两位来配置,所以你看到32×N。 32表示一个port的配置寄存器,而N代表是第几个端口。而这里的offset表示的是第几个引脚。*/本文引用地址:https://www.eepw.com.cn/article/151484.htm
S3C2440开发板中GPIO的许多引脚是和地址线、数据线、串口线等引脚复用的。所以我们必须对GPIO进行重新定义和配置。一般来说,写驱动可以在内核中找相近的驱动程序,以它为模板进行开发,有时也要从零开始,这次作者在内核Linux-2.6.13-qq2440\kernel2.6.13\drivers\char中的qq2440 led.c进行修改。
最后定义了file_operations和各种API函数,配置了init和exit函数以及module_exit和module_init。
驱动开发完后,要进行测试。把编写好的驱动程序在PC机上进行交叉编译。然后用命令#insmod stepper.ko加载模块到内核中,通过命令#rmmod stepper.ko可以卸载模块。用mknod/dev/stepper 1000 0建立与驱动程序相应的设备节点。编写相应的应用程序。在应用程序中打开步进电机的设备文件,通过调用ioctl(fd,1dir,O),运行应用程序,查看步进电机的转向。
3 结论
本文在S3C2440开发板下实现了步进电机的控制。给出了简单的驱动程序,实验结果表明驱动运行正常、稳定。但对于实现传能激光雕刻的图形及灰度雕刻,还有待于进一步的完善。
评论