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

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

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

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

如何改变呢?
...全文
296 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-08-11 04:08
社区公告

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