C++Builder串口通信问题

yicun0412 2011-05-31 03:21:41
请问,用RS232做串口通信,我想用4个按键做4个命令输出到单片机,用到的是API里面的那个函数呢?TXD引脚发送吗,不懂,请教高手解答,谢谢
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yicun0412 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 discoveralan 的回复:]
首先把串口当文件一样打开:
char* COMport;
DCB dcb;
COMport = ("COM" + IntToStr(this->rgComNo->ItemIndex + 1)).c_str();
hComm = CreateFileA(COMport,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
……
[/Quote]
感谢啊,我也不懂,参加电子设计大赛,做上位机界面 时间有点紧额
discoveralan 2011-05-31
  • 打赏
  • 举报
回复
其实我也是个准备入门的菜鸟,这代码基本上是我抄的书上的。。。。。。
discoveralan 2011-05-31
  • 打赏
  • 举报
回复
首先把串口当文件一样打开:
char* COMport;
DCB dcb;
COMport = ("COM" + IntToStr(this->rgComNo->ItemIndex + 1)).c_str();
hComm = CreateFileA(COMport,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if(hComm == INVALID_HANDLE_VALUE){
MessageBoxA(0,"Open COM Error!","Comm Error",MB_OK);
return;
}

GetCommState(hComm,&dcb);
dcb.BaudRate = 57600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;

if(!SetCommState(hComm,&dcb)){
MessageBoxA(0,"Set COM Port Error!","Set Error!",MB_OK);
CloseHandle(hComm);
return;

然后往串口里写内容
unsigned long lrc,BS;
String s;
if(hComm == 0) return;
BS = mmoSendData->Text.Length();
//lrc = 1024;
s = this->mmoSendData->Text;
WriteFile(hComm,s.c_str(),BS,&lrc,NULL);

yicun0412 2011-05-31
  • 打赏
  • 举报
回复
姐姐,给个使用WriteFile的格式行吗?,使用它是直接在双击BinBtn产生的Click事件里编程就可以吗,我新手,您见谅
银点 2011-05-31
  • 打赏
  • 举报
回复
如果用C++ builder 的话,找个串口组件就完了。不用管TX还是RX的
银点 2011-05-31
  • 打赏
  • 举报
回复
当然可以啊。
yicun0412 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cppfile 的回复:]
WriteFile,把串口当文件来写
[/Quote]
谢谢,比如说,“前”“后”“左”“右”四个键,我按“前”,程序里对应输出字母 A,这样可以实现吗
CppFile 2011-05-31
  • 打赏
  • 举报
回复
WriteFile,把串口当文件来写

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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