1:嵌入式下打开一个设备最好想好是那种方式打开(只读方式,读写方式,阻塞\非阻塞方式)。
有一个项目,用到一个串口,两个hid方式的usb口,大体代码如下
FD_ZERO(&rd);
FD_SET(cd_fd, &rd);
printf("set cd fd\n");
FD_SET(rf_fd, &rd);
printf("set rf fd\n");
FD_SET(button_fd,&rd);
printf("set button fd\n");
FD_SET(tl_fd,&rd);
//FD_SET(usbRf_fd,&rd);
printf("set usbrf fd\n");
max_fd=((cd_fd>rf_fd)?cd_fd:rf_fd);
//max_fd=((max_fd>usbRf_fd)?max_fd:usbRf_fd);
max_fd=((max_fd>tl_fd)?max_fd:tl_fd);
max_fd=(button_fd>max_fd)?button_fd:max_fd;
printf("wait for serial\n");
while(1)
{
//if(select(max_fd+1, &rd, NULL,NULL,&tv)<0)
if(select(max_fd+1, &rd, NULL,NULL,NULL)<0)
{
perror("select fail ");
}
else
{
if(FD_ISSET(cd_fd, &rd))
{
//do
//{
nBytes = read(cd_fd, (char *) &ev, sizeof(struct input_event));
printf("---nBytes=%d----\n",nBytes);
if (nBytes > 0)
{
if (ev.type == 1)
{
//按键值
if (ev.value == 0)
{
//放开的按键值