2137|0

1891

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

网关——通过QT控制LED [复制链接]

首先新建一个Qt工程文件(可参考前几篇帖子)。
首先新建一个led.c和led.h文件,添加到工程中去。


view plaincopy to clipboardprint?

  • //led.h文件  
  • #ifndef LED_H  
  • #define LED_H  
  • #ifdef __cplusplus  
  • extern "C" {  
  • #endif  
  • extern int led_open(const char *devname);  
  • extern int led_ioctl(const int no,const int sw);  
  • extern int led_close(void);  
  • extern int led_fd;  
  • #ifdef __cplusplus  
  • }  
  • #endif  
  • #endif // LED_H  



view plaincopy to clipboardprint?

  • //led.c文件  
  • #include "led.h"  
  • #include   
  • #include   
  • #include   
  • #include   
  • #include   
  •   
  • #define IOCTL_LED_ON    0  
  • #define IOCTL_LED_OFF   1  
  •   
  • int led_fd=0;  
  • int led_open(const char*devname){  
  • led_fd=open(devname,O_RDWR);  
  • printf("LED driver is ok\n");  
  • if(led_fd<0){  
  •   printf("open device %s failed.\n",devname);  
  •   return -1;  
  • }  
  • return 0;  
  • }  
  • int led_ioctl(const int no,const int sw){  
  • //led_fd=open("/dev/led",O_RDWR);  
  • int num=no;  
  • ioctl(led_fd,sw,num);  
  • printf("LED%dis open\n",num);  
  • return 0;  
  • }  
  • int led_close(void){  
  • if(led_fd)  
  •   close(led_fd);  
  • }  



添加一个pushbutton,如下图所示:

将鼠标放在pushbutton上面,点击右键,选择转到槽( goto slot。。。)。选择pressed()和 release()按键函数。
修改mainwindow.cpp代码如下:

view plaincopy to clipboardprint?

  • #include "mainwindow.h"  
  • #include "ui_mainwindow.h"  
  • #include "led.h"  
  •   
  • #define LED1    0  
  • #define LED2    1  
  • #define LED3    2  
  • #define LED4    3  
  •   
  • #define LED_ON  0  
  • #define LED_OFF 1  
  •   
  • MainWindow::MainWindow(QWidget *parent) :  
  •     QMainWindow(parent),  
  •     ui(new Ui::MainWindow)  
  • {  
  •     ui->setupUi(this);  
  •     led_open("/dev/led");  
  •     printf("C++ /dev/led\n");  
  • }  
  •   
  • MainWindow::~MainWindow()  
  • {  
  •     delete ui;  
  •     led_close();  
  • }  
  •   
  • void MainWindow::on_pushButton_pressed()  
  • {  
  •     led_ioctl(LED1,LED_ON);  
  • }  
  •   
  • void MainWindow::on_pushButton_released()  
  • {  
  •     led_ioctl(LED1,LED_OFF);  
  • }  



发布运行。。。

点击pushbutton之后,LED1点亮。松开pushbutton之后LED1熄灭。

此帖出自单片机论坛
点赞 关注
个人签名
分享铸就美好未来。。。




 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表