求一个C语言操作串口接受数据的程序,(传感器与电脑连接。需要读取传感器通过串口传歘的数据。)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个C语言操作串口接受数据的程序,(传感器与电脑连接。需要读取传感器通过串口传歘的数据。)相关的知识,希望对你有一定的参考价值。
先有一个传感器,与PC连接,需要读取传感器传传回的数据,跪求大神给你一个C语言操作串口接受数据的程序,感激不尽。
参考技术A 大神舍不得给你传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。追问
大神,注意重点
参考技术B 你得注释, 越看头越大, unsigned char fifo_head=0; //往fifo写入数据时的位置unsigned char fifo_tail=0; // 读出fifo时的位置unsigned char Rx1_pos=0; //当前的接收位置unsigned char Rx1_num=0; //数据长度unsigned char Frame_in=单片机串口通信控制led灯的点亮
参考技术A pc通过串口和单片机交换数据,从而控制LED灯。 pc程序用labview 调用Visa 进行串口通讯。单片机接受到串口命令后控制I/O口的高低电平实现led灯亮灭控制。用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。 if(SBUF==0) //这是按二进制数接收的 if(SBUF==1) //这也是按二进制数接收的 这样写程序,要求电脑上,要按二进制数即十六进制数发送才行。 还是按字符格式收发比较好。
看你这程序编的,ha 查询RI 不是等于 1,而是0 只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是 0,不是1 当接收完数据后,再进行对RI的清零 还是不多说了,上程序,若满意请记得采纳一下,谢谢! 这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
电脑上,你是用什么软件发送数据的看用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。
以上是关于求一个C语言操作串口接受数据的程序,(传感器与电脑连接。需要读取传感器通过串口传歘的数据。)的主要内容,如果未能解决你的问题,请参考以下文章