驱动程序与串口通信融合
目前我的键盘驱动单独测试是没问题,串口通信单独测试页是没问题的,放在一起时无法发送数据,下面是我的发送函数的功能实现。
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串口通信
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。
usb2com驱动程序
没有com口是很郁闷的,有了usb2com即可实现。


驱动开发/核心开发
