通过Qt界面控制步进电机的启停
来源:互联网 发布:php简单文字特效代码 编辑:程序博客网 时间:2024/05/21 14:54
一、实验目的
了解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);}
阅读全文
0 0
- 通过Qt界面控制步进电机的启停
- 步进电机的控制
- 写个控制步进电机的QT程序
- 步进电机的单片机控制
- 步进电机的细分控制
- 步进电机的线速度控制
- 树莓派通过GPIO控制步进电机(python)
- 四相步进电机的控制
- 51单片机控制步进电机的程序
- 关于L298N控制步进电机的更改
- 单片机对步进电机的控制(一)
- 单片机对步进电机的控制(二)
- 51控制步进电机的驱动
- 步进电机的加减速控制
- 步进电机的加减速控制
- 步进电机开环控制的要点
- 二、步进电机的细分控制原理
- Arduino对57步进电机的控制
- 如何安装Oracle 11g
- UNITY 学习笔记(三)——UGUI使用
- 自动将禅道sql和图片上传Commit到svn服务器
- zeppelin 安装使用,测试spark,spark sql
- Convert BST to Greater Tree
- 通过Qt界面控制步进电机的启停
- category命令评估YOLO模型对每种物体检测的性能
- Linux驱动中的阻塞与非阻塞I/O,等待队列,轮询操作
- Windows 7 下安装mysql-5.7.18-winx64.zip
- SSL1475 纪念邮票(math)
- [Python] 基于Intellij IDEA的python开发
- Mysql关联查询
- Warning: connect.static is not a function
- 数据挖掘3-----工具包整理