硬件综合训练中期总结

小学期一门课名为硬件综合训练,一直到了第二周才开课,一开始我还以为又是什么水到不行的课,交个报告就完事。当我见到那物联网教学科研平台时,就改变了我的看法。六个传感器,一个LINUX网关,传感器通过ZIGBEE网络发送数据,网关接收并用图形化界面显示出来。而我们要做的,就是在此基础上模拟一些功能,使其能用在智能家居上。就比如有个温湿度传感器,我们可以利用这个传感器对家庭的温湿度进行监控,一旦发现家里温度过高,就可以控制空调自动开启。这是一个计算机科学与技术专业的软件狗第一次接触到硬件的过程。(据说,全国高校本专业只有本校开设了这门课。。。)

闲话就说到这里,今天距离第一次课刚好一周,距离我拿到实验平台共计四天的时间,对平台也熟悉的差不多了,经过一次次折腾,大致了解了Zigbee网络的工作方式,以及代码写法,明天就可以开始真正的开发智能家居的应用。

7月7号下午:

这不就是一个已经可以使用的平台了吗,我们不用在对硬件进行编码了吧,我只要把传感器采集到的数据通过串口读取到我的电脑上不就完了。(ps:平台网关和Zigbee协调器模块是通过串口进行通信的)网关是up-cup6410型号,传感器均来自于北京博创兴盛科技有限公司。百度搜了C语言读串口的代码,其实这个还真不好搜,费了好大劲才找到,可能是我关键字不太对吧,也可能是我对c语言理解不够深刻,搜到了说直接用CreateFile把串口当成文件来读的。可是细数我两年的编程经历,读文件还只用过FILE类。。。这个部分贴个代码,方便跟我一样的初学者。

<span style="font-family:KaiTi_GB2312;font-size:18px;">HANDLE test = CreateFile(_T("COM3"), GENERIC_READ, 0, NULL, OPEN_EXISTING, NULL, NULL);   //打开串口
	if (test == INVALID_HANDLE_VALUE)    //打开失败
	{
		cout << "open filed\n";
		system("pause");
		exit(-1);
	}
	DCB *dcb = new DCB();    //设置串口状态所用的控制块
	GetCommState(test, dcb);
	dcb->BaudRate = 115200;   //波特率
	dcb->ByteSize = 8;        //字长
	dcb->Parity = 0;          //奇偶校验方式
	dcb->fOutxCtsFlow = false;   //无硬件流中断
	SetCommState(test, dcb);     //设置串口状态
	DWORD readSize;
	DWORD fileSize = 1;
	char *buffer = new char[fileSize];
	char *data = new char[17];
	ReadFile(test, buffer, fileSize, &readSize, NULL);    //从串口读数,test是串口的句柄,buffer数据缓冲区,filesize要读取的大小,readsize实际读取大小</span>

读完串口后数据即存放在buffer中。

找代码找的心力交瘁,然后开始进行测试,代码运行好久,控制台并没有输出,难道是波特率出错了(PS:后来才知道波特率不对也会有输出ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值