驱动程序与串口通信融合

方丈的寺院 方丈的寺院 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序想实现这样的功能:按键S1按下,ARM通过RS232发送0,按键S2按下,ARM通过rs232发送1
目前我的键盘驱动单独测试是没问题,串口通信单独测试页是没问题的,放在一起时无法发送数据,下面是我的发送函数的功能实现。
void* send(void * data)
{
int ret,i;
unsigned int keys_value=0;
int c='0';
printf("send data\n");
while(STOP==FALSE)
{
fd = open("/dev/KEYS0",0);//open the button
if(fd<0)
{
printf("open /dev/KEYS error!\n");
//return -1;
}

for(;;)
{
ret=read(fd,&keys_value,sizeof(keys_value));
if(ret<0)
{
printf("read err!\n");
continue;
}
switch(keys_value)
{
case 0xEE:

write(fd,&c,1);
usleep(100000);
printf("S1 PRESS ,send 0\n");

break;
case 0xDE: c++;
printf("S2 PRESS,send 1\n");
printf("send success\n");
write(fd,&c,1);
usleep(100000);
break;
}
keys_value=0;
c='0';
}
}
}
可能出错的地方应该是switch函数中的实现错误,因为按键按下时printf函数可以打印,但是不知道为什么无法发送数据。
求解释,求指教
...全文

相关推荐

RS232串口通信

RS232串口通信

mengxiankun668

232串口驱动的安装与应用

RS-232是由电子工业联盟(EIA)在1962年制定的一种串行通信标准。RS-232定义了信号线的电平、连接器的形状、引脚排列和信号线功能。它在物理层规定了通信设备的电气特性,如逻辑“1”表示为-3V至-25V,逻辑“0”表示为+3V至+25V。CP210x系列芯片由Silicon Labs生产,是USB转串口解决方案的佼佼者,它集成了USB 2.0全速功能控制器、带有振荡器、EEPROM以及电源调节器。

一朵小小玫

单片机与GPS模块结合LCD12864显示的Keil程序设计

NMEA 0183是一种广泛使用的数据交换标准,由美国国家海洋电子协会(National Marine Electronics Association)制定。该协议定义了一组通信标准,用于传输从GPS接收器和其他海洋电子设备发送的导航数据。NMEA 0183规定了传输的数据格式、速率、位和帧的同步机制以及数据的结构。NMEA 0183通过ASCII文本格式发送数据,每个语句称为一个句子,每个句子以"$"字符开始,并以回车换行结束。

拉米医生

C#编程实现串口通信指南

在现代信息技术领域中,串口通信扮演了至关重要的角色。C#作为一种广泛应用于Windows平台的编程语言,提供了强大的串口通信功能。通过System.IO.Ports命名空间,开发者可以轻松地实现设备之间的数据传输。本章将介绍C#串口通信的基本概念及其重要性,为深入学习后续章节内容打下坚实的基础。System.IO.Ports是.NET Framework中用于访问串行端口的类库。该命名空间包含了一系列的类和方法,用以支持开发者编写串口通信程序。其中的主要类包括:SerialPort。

TEDDYYW

usb2com驱动程序

没有com口是很郁闷的,有了usb2com即可实现。

xylqr
评论 4
收藏 已收藏
分享
返回顶部
方丈的寺院
方丈的寺院 优质创作者: Java技术领域 优质创作者: Java技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
驱动开发/核心开发 21,620 成员 21,709 内容