问题1:
我用API函数写一个自己的串口类,利用CreateFile(),ReadFlie()WriteFile()等函数来完成通讯过程。PC(发送)->MCU(接收),然后,MCU(发送)->PC(接收);在主界面的控制下循环这个过程。在这种情况下是否要用到线程,如果不用应怎样实现,如果需要,如何实现。问题2:
PC传输时发送和接收的数据都是一个字符的二进制,如0011 1111。在发送时应该表示成ASCII的字符值。发送->max232->单片机(SBUF)时,SBUF=0x3F?
另PC在接收单片机发来的数据,并保存在变量buf中,这时如何对这个二进制进行位处理,比如判断其那一位的的值为1/0。
我用API函数写一个自己的串口类,利用CreateFile(),ReadFlie()WriteFile()等函数来完成通讯过程。PC(发送)->MCU(接收),然后,MCU(发送)->PC(接收);在主界面的控制下循环这个过程。在这种情况下是否要用到线程,如果不用应怎样实现,如果需要,如何实现。问题2:
PC传输时发送和接收的数据都是一个字符的二进制,如0011 1111。在发送时应该表示成ASCII的字符值。发送->max232->单片机(SBUF)时,SBUF=0x3F?
另PC在接收单片机发来的数据,并保存在变量buf中,这时如何对这个二进制进行位处理,比如判断其那一位的的值为1/0。
解决方案 »
- 验证编辑框输入的内容的问题!
- 我想请教下,我一直在用vc6.0,但我看到很多朋友在用vc7.0,vc7和.net是一回事吗?
- 如何在执行.exe后一段时间内自动修改工程中的.cpp文件内容
- 高分求:有关WORD的COM插件的问题,解决的好可以另开帖加分
- 有一个想法,不知怎么实现
- socket编程,怎么设置代理?谢谢
- 一个对话盒中要有两组 RADIO BUTTON 如何设置?
- VC在界面方面是不是没有办法和VB,Delphi比了?
- 有没有简单方法:将double转换成CString和CString转换成char*
- 我想将剪贴板的前两个字符读到两个变量中.我是这样作的。
- 请问广域网路由器发送数据包到我们主机的问题
- 帮忙找错~~~~~~~~~~~~
2:你可以把你的数据放在一个 Buff中,直接调用WriteFile这个函数就可以了,至于位处理你可以看看参考书。
#define MASK_BIT6 0X40
#define MASK_BIT5 0X20
#define MASK_BIT4 0X10
#define MASK_BIT3 0X08
#define MASK_BIT2 0X04
#define MASK_BIT1 0X02
#define MASK_BIT0 0X01//
BYTE bRet=ReceiveFrmPort();
if( MASK_BIT0 & bRet)
{
// bit 0 = 1, do sth.}
what_a_big() ( ) 信誉:100 Blog 加为好友 2007-4-20 18:40:36 得分: 0
___________________________________________________________________________
谢谢你例子,这个只能解决单独的判断每一位的1/0值,但是如果bRet=0011 0001;其中为1的位是不确定的.在这样的情况下,我要去判断bRet中的这个二进制中哪一位为1/0. 有没有解决的办法,是否要用到混合编程呢?
bRet=0011 0001
for (int i=0;i<8)
{
if ((bRet>>i & 0X01)==1)
printf(" 第%d是1",i+1);
}
等等。
当然你也可以用一个CString类。把bRet的二进制转化为CSting , 然后再找其中有几个“1”