如何在键盘上输入A,就将A发送给串口

haohaojiuhao0729 2016-12-23 09:21:13
char c=getch();
if (0==c||0xe0==c) c|=getch()<<8;//非字符键
switch(c){
case '5': break;
case '6': //摄像头向右
a[3]=0x08; break;
case '4': //摄像头向左
a[3]=0x10; break;
case '2': //倒退
a[3]=0x04; break;
case 'A': //前进
a[3]=0x02; break;

default:
flag=1; //程序退出
}
a[6]=(a[1]+a[2]+a[3]+a[4]+a[5])%(0x100); //校验
while( (i = write(fd,a,7) )!=7); //向串口写命令
bzero(&a[2],4);
}
/*关闭串口*/
close(fd);
#ifdef DBG_YT
printf("YT control is exiting\n");
#endif
return 0;
}
这是网上的一个代码,大概就是键盘上一个按键就会给串口发送一串十六进制代码。现在我想改一下它,比如输入A以后,就把A这个字符直接发送给串口就行。如何修改呢
...全文
418 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
依然冷暖 2016-12-25
  • 打赏
  • 举报
回复
是不是串口都有选择发送方式的函数呢 十六进制 ASCII. Unicode
m_syb 2016-12-24
  • 打赏
  • 举报
回复
'5'改成'A',呵呵
caojinrong 2016-12-24
  • 打赏
  • 举报
回复
char c=getch(); write(fd,&c,1);
haohaojiuhao0729 2016-12-24
  • 打赏
  • 举报
回复
我C语言基础很差,但是目前这个代码我能看出来,最后向串口写的数据是当a[3]取不同值的七位数据,我现在就是想修改写数据这一块,就是想输入A后直接就给串口写入A这个字符,而不是什么其他数据,该如何修改呢
花开花折 2016-12-24
  • 打赏
  • 举报
回复
先捕获键盘的输入,然后将接收到的内容,通过串口发送就行。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧