halcon/mfc利用serialport类进行串口通信
来源:互联网 发布:jenkins linux slave 编辑:程序博客网 时间:2024/06/05 18:24
1.引言
串口通信用mscomm控件在x64平台下报错,只能在Win32平台下工作,所以想着换平台,下载32位的halcon进行安装。安装时,不用卸载64位,安装时提示安装插件,会自动检测到runtimeclass x86,安装好后相当于只是多了一个lib中的x86sse2-win32文件夹
2、应用程序无法正常启动(0xc000007b)
安装好,设置好路径后,编译成功,运行报错。查询后发现这是由于64位系统中,32位halcon库不能正常加载造成的。一般的32位程序都可以在64位系统中运行,halcon库比较特殊。
采用x64平台编译,并使用64位halcon库,可以解决该问题。
3.选择serialport类
于是只能放弃mscomm控件,选择serialport类进行串口通信。
4.代码出错修改
网上下载一个实例,里面打开后得到的是一个控制台程序,在MFC对话框中把源文件和头文件添加进工程,编译时报错,后来把出错代码段进行修改。
bool CSerialPort::InitPort( UINT portNo /*= 1*/,UINT baud /*= CBR_9600*/,char parity /*= 'N'*/, UINT databits /*= 8*/, UINT stopsbits /*= 1*/,DWORD dwCommEvents /*= EV_RXCHAR*/ ){ DCB dcb; if ( bIsSuccess ) { // 将ANSI字符串转换为UNICODE字符串 //DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, NULL, 0); //WCHAR *pwText = new WCHAR[dwNum]; //if (!MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, pwText, dwNum)) //{ // bIsSuccess = TRUE; //} ///** 获取当前串口配置参数,并且构造串口DCB参数 */ bIsSuccess = GetCommState(m_hComm, &dcb) && BuildCommDCB(szDCBparam, &dcb); /** 开启RTS flow控制 */ dcb.fRtsControl = RTS_CONTROL_ENABLE; /** 释放内存空间 */ //delete [] pwText; }}
5.相关代码
首先添加头文件和类定义
#include "serialport.h" CSerialPort mySerialPort;
初始化串口,发送数据
void IO::OnBnClicked初始化(){ // TODO: 在此添加控件通知处理程序代码 //unsigned char* pData = "1234567"; if (!mySerialPort.InitPort(3, CBR_9600, 'N', 8U, 1U, EV_RXCHAR)) MessageBox("initPort fail !"); if (!mySerialPort.OpenListenThread()) MessageBox("OpenListenThread fail !"); /*mySerialPort.InitPort(3, CBR_9600, 'N', 8U, 1U, EV_RXCHAR); mySerialPort.OpenListenThread();*/ unsigned char outString[] = "F88F0280808000002000"; mySerialPort.WriteData(outString, 21); //mySerialPort.ClosePort(); //mySerialPort.CloseListenTread();}void IO::OnBnClicked发送(){ // TODO: 在此添加控件通知处理程序代码 unsigned char outString[] = "F88F0280808000002000"; mySerialPort.WriteData(outString, 21);}
6.运行成功
点击发送按钮可以一直发送数据
0 0
- halcon/mfc利用serialport类进行串口通信
- halcon/mfc利用serialport类制作串口通信对话框
- C#串口通信程序SerialPort类
- C#中显现串口通信SerialPort类
- SerialPort 串口通信
- C# SerialPort 串口通信
- C# SerialPort 串口通信
- serialPort 串口通信
- 串口通信serialport
- 利用CSerialPort 类进行通信串口
- vb.net利用SerialPort进行读取串口操作
- vb.net利用SerialPort进行读取串口操作
- c# SerialPort控件串口通信
- C# SerialPort控件串口通信
- c# SerialPort控件串口通信
- c# SerialPort控件串口通信
- 关于利用android-serialport-api实现在安卓设备上进行串口通信,附精简版demo,亲测可用。
- 自定义串口通信类的实现(SerialPort)
- ORB-slam的配置和使用
- usb的基本了解
- BZOJ 1647: [Usaco2007 Open]Fliptile 翻格子游戏 Dfs
- 课程相关资源
- 注解
- halcon/mfc利用serialport类进行串口通信
- 2共享对象
- poj训练计划
- 批量抓取
- HZAU 1208 Color Circle
- JDK1.5&1.7新特性
- 2017.4.26API中的一些类
- 迭代器的使用
- this指针的使用