通过Qt界面控制步进电机的启停
2017-05-18 17:08
447 查看
一、实验目的
了解Qt界面与开发板底层硬件之间的调用机制
二、实验方法
了解Qt界面与开发板底层硬件之间的调用机制
二、实验方法
1,在QT程序中,新建一件,再添加一个用于操作硬件的新方法,如controlMachine,建立按钮与con个属于你自己的类,如Widget用于显示。 2,在你的类中添加按钮控trolMachine函数之间的信号与槽机制(使用connect函数)。 3,完善你的controlMachine函数,在函数中实现:读取Edit中变量的值,放在你的新变量中,使用Linux系统函数open打开设备文件,调用::ioctl函数(在QT中直接调用系统函数前边得加::两个冒号),使用ioctl传入参数,然后关闭文件。
#include "mainwindow.h" #include "ui_mainwindow.h" #include "unistd.h" static int dcm_fd = -1; char *DCM_DEV="/dev/s3c2440-dc-motor0"; int k=0; #define DCM_IOCTRL_SETPWM (0x10) #define DCM_TCNTB0 (16384) /* void Delay(int t) { int i; for(;t>0;t--) for(i=0;i<400;i++); }*/ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { int i = 0; int status = 1; int setpwm = 0; int factor = DCM_TCNTB0; if(k==0){ if((dcm_fd=open(DCM_DEV, O_WRONLY))<0){ printf("Error opening %s device\n", DCM_DEV); //return 1; } for (i=-512; i<=512; i++) { if(status == 1) setpwm = i; else setpwm = -i; ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (100 * factor)); // Delay(500); //printf("setpwm = %d \n", setpwm); } k=1; } else { k=0; ::close(dcm_fd); } //close(dcm_fd); }
相关文章推荐
- 嵌入式QT界面卡死,无法接收控制问题的总结
- Qt中如何通过QStyle自定义能够跨平台的界面控件
- C# 通过线程来控制进度条(转)--讲解多线程对界面的操作
- Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)
- 树莓派通过GPIO控制步进电机
- qt界面使用划块控制数字框
- 一起看代码来玩玩QT之18 QSqlDatabase (three 将database 通过 QTableView显示到界面上,并且增删改查
- Qt中如果通过QStyle自定义能够跨平台的界面控件
- Arduino(2560)控制两个步进电机通过控制器
- ubuntu下QT+OpenCV控制摄像头通过label 显示
- 写个控制步进电机的QT程序
- 通过PC的USB端口控制多个步进电机
- qt通过ui设计师添加界面到代码步骤
- 树莓派通过GPIO控制步进电机(python)
- 嵌入式QT界面卡死,无法接收控制问题的总结
- Qt 界面上控制中英文显示切换
- 在开发板S3C2440中如何用自带的QT去设计一个界面来实现控制摄像头,这个界面的框架图是怎样的
- QT控制界面鼠标
- 通过线程控制QT控制台程序退出
- Qt预测控制界面开发(一)