- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C串口编程源程序
程序模块分析
串口初始设置程序
此程序模块主要是在程序打开时对通讯参数按照设置值进行初始化。包括对初始化通信端口的配置,计数器的清零,自动发送周期缺省值,系统时间显示定时器配置。初始化参数如下面程序中所设置。并将此段程序写在BOOL CSerialPortDlg::OnInitDialog()类中。
具体程序编写如下。
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////// 串口初始设置程序 ///////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
/********************************************************************/
/* 代码段功能:通讯设置的默认设置程序,对自动发送周期默认设置 */
/* 打开定时器2,为显示系统时间做准备 */
/********************************************************************/
m_ctrlCombo1.SetCurSel(0); //串口默认值,初始化为COM1
m_ctrlCombo2.SetCurSel(5); //波特率默认值,初始值为9600
m_ctrlCombo3.SetCurSel(0); //奇偶校验默认设置,初始无奇偶校验NONE
m_ctrlCombo4.SetCurSel(0); //数据位默认值,初始值为8位
m_ctrlCombo5.SetCurSel(0); //停止位默认值,初始值为1
CSerialPortDlg::OnInitSerial(); //打开程序就初始化默认串口设置
m_SendTime.SetWindowText( 1000); //自动发送周期初始值为1秒
SetTimer(2,1000,NULL); //系统时间定时器,定时器2,每秒刷新
m_ctrlRXCount.SetWindowText(接收数据量: 0);
//初始时显示接收数据总计数值为0
m_ctrlTXCount.SetWindowText(发送数据量: 0);
//初始时显示发送数据总计数值为0
/********************************************************************/
//////////////////////////////////////////////////////////////////////////////////////////
串口事件消息处理函数程序
此段程序主要函数是用来处理串口消息事件,每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,OnOnCommMscomm1 ()函数加入相应的处理代码就能实现自已想要的功能。
当有消息事件,首先然后读取缓冲区,并将字符类型转换并保存于数组中。然后判断是否以十六进制接收数据,若以十六进制接收数据的复选框被选择,则???用十六进制转换函数进行数据转换,否则以ASCALL接收数据并显示于接收数据显示框。在接收数据的同时,对接收数据量进行计数,并显示。
具体程序编写如下。
//////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// 串口事件消息处理函数 /////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
/********************************************************************/
static long m_RXDataCount=0; //静态变量,存放接收字符计数
void
文档评论(0)