OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 怎样实现电脑串口助手控制单片机给元器件发送命令并读取信息呢?

共5条 1/1 1 跳转至

怎样实现电脑串口助手控制单片机给元器件发送命令并读取信息呢?

助工
2020-12-30 22:54:40    评分

怎样实现电脑串口助手控制单片机给元器件发送命令并读取信息呢?我只会简单移植,然后串口助手发什么,单片机传回什么,元器件感觉没连接上,中间少了什么吗?

源码如下:


#include<stc12c5a.h>

#define Adr 01

unsigned char aa,Flag;

void UartInit(void)

{

PCON &= 0x7F;

SCON = 0x50;

AUXR &= 0xBF;

AUXR &= 0xFE;

TMOD &= 0x0F;

TMOD |= 0x20;

TL1 = 0xFA;

TH1 = 0xFA;

ET1 = 0;

TR1 = 1;

EA=1;

ES=1;

TI=0;

RI=0;

}

void DelayMs(unsigned char t)

{

for(i=t;i>0;i--)

for(j=110;j>0;j--);

}

void SendChar(unsigned char Char)

{

SBUF=Char;

while(!TI);

TI=0;

}

void SendStr(unsigned char *p)

{

while(*p!='\0')

{

SendChar(*p);

p++;

}

}

void main()

{

UartInit();

SendStr("open 01");

DelayMs(50);

SendStr("r");

while(1)

{

ES=0;

Flag=0;

SBUF=aa;

while(!TI);

TI=0;

ES=1;

}

}

void Uart_Isr(void) interrupt 4

{

if(RI)

{

RI=0;

aa=SBUF;

Flag=1;

}

if(TI)

{

TI=0;

}

}





关键词: 串口     上位机     串口通信    

工程师
2021-01-01 13:54:14    评分
2楼

原来可以这样哈


助工
2021-01-01 22:30:40    评分
3楼
串口可以发送相对应的字符值给单片机作为命令,单片机接收后发回应答信息也可以用字符表示,接收命令后经判断去执行相对应的任务即可。



工程师
2021-01-01 22:41:29    评分
4楼

还是需要参考相应元器件的具体要求和指令来操作,你可以通过串口读取单片机的数据还可以通过串口下发数据写入器件,然后回读。


工程师
2021-01-01 22:46:22    评分
5楼

单片机与电脑通信为一部分,单片机与其他元件或模块通信是另一部分。单片机跟电脑就像是两个人在交流一样,单片机有单片机要负责的事情,电脑有电脑要负责的事情。两者之间的沟通可以用国语,可以用方言等等,只要双方可以识别就好。有需要的时候电脑只需要告诉单片机要做的事情,这叫发指令。
常用的指令定义可以用16进制或者固定格式的字符串。简单的控制和数据交流建议用16进制就可以,处理起来比较简单,减少出错。
最简单的16进制指令:
FF 01 00 00 00 00 00 55
这个是一个8个字节的数据。(一个字节为8位即“FF”)
例子;
unsigned char sndata[8];//定义发送数据缓存
一般头是固定的:sndata[0]=0xFF;
一般最后一位是校验位;sndata[7]=0xFF;可以是自定义的一位数据,一般是通过相关计算得的一个数据。
剩下的就是自定义的功能位:
比如第二位为led控制;
定义:sndata[1]=0x00; //关闭
定义:sndata[1]=0x01; //开启
这部分都是要在单片机中定义好。因为这些事情都是单片机负责的事情。相反也是如此。


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]