水平略低,若有不对请直接指出。
以前接触51的时候就听过串口,但是一直没有机会接触。这一次“炬芯杯”的比赛做一个激光打印机:计算机通过摄像头抓取到人脸,将人脸的数据发送给下位机打印出来,其中计算机和下位机就是通过串口进行通信,那什么是串口通信呢?
串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点串行接口串行接口是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯可以进一步分为单工、半双工和全双工三种。
串口的协议经常是说RS-232C接口,一般有22根线,其中细节不过多叙述,主要重要的是TXD和RXD两个脚,其中细节也不用过多了解(主要是我不了解…),有很多库帮我们封装好了接口,直接设置好调用就能运行了。
那用VS编程一般用什么库呢?我也不知道,在知网上搜到两个常用库。MSComm控件和SerialPort类,因为MFC快要被淘汰了,果断选择SerialPort类,demo如下,直接看Main函数就行,初始化SerialPort(COM口,频率…等)之后直接读取写入就行了。
其实刚看这个接口,也不是很熟练,对于默认显示串口收到信息的处理等还不清楚,之后了解了再慢慢写吧。
#using <System.dll>
using namespace System;
using namespace System::IO::Ports;
using namespace System::Threading;
public ref class PortChat
{
private:
static bool _continue;
static SerialPort^ _serialPort;
public:
static void Main()
{
String^ name;