使用API 打开串行口后 如何动态的改变波特率?

lostiger 2004-08-11 04:08:15
使用如下方式打开串行口后

m_hComm = CreateFile("\\\\.\\com1", // 串口名称或设备路径
GENERIC_READ | GENERIC_WRITE, // 读写方式
0, // 共享方式:独占
NULL, // 默认的安全描述符
OPEN_EXISTING, // 创建方式
0, // 不需设置文件属性
NULL); // 不需参照模板文件

有时候使用波特率115200通信
有时候使用波特率19200通信

如何改变呢?
...全文
517 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2004-08-11
  • 打赏
  • 举报
回复
直接将配置的值赋值就可以了
wetheart 2004-08-11
  • 打赏
  • 举报
回复
同意楼上意见,再补充点,如果你只是设置波特率,可以先
BOOL GetCommConfig(
HANDLE hCommDev, // handle to communications service
LPCOMMCONFIG lpCC, // configuration information
LPDWORD lpdwSize // size of buffer
);
得到串口配置,只是设置波特率就行了。
然后再BOOL SetCommConfig(
HANDLE hCommDev, // handle to communications device
LPCOMMCONFIG lpCC, // configuration services
DWORD dwSize // size of structure
);
waterpub 2004-08-11
  • 打赏
  • 举报
回复
m_hComPort就是你的m_hComm
waterpub 2004-08-11
  • 打赏
  • 举报
回复
//以下是固定的串口初始值
m_CFG.dcb.BaudRate = 4800;//波特率
m_CFG.dcb.ByteSize = 8;
m_CFG.dcb.fInX = 0;
m_CFG.dcb.fOutX = 0;
m_CFG.dcb.fOutxCtsFlow = 0;
m_CFG.dcb.fRtsControl = 0;
m_CFG.dcb.fParity = 0;
m_CFG.dcb.Parity = 0;
m_CFG.dcb.StopBits = 2;

SetCommConfig(m_hComPort,&m_CFG,sizeof(m_CFG));
其他的参考一下msdn

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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