怎么用串口发送一个数组?用电脑上的串口助手发送,单片机接收后再发送给电脑?

怎么用串口发送一个数组?用电脑上的串口助手发送,单片机接收后再发送给电脑?,第1张

1.首先用中断方式循环接收数据保存到数组

/********************************************

*串口数据接收中断服务

*功能:接收串口数此没洞据

********************************************/

void get(void) interrupt 4 using 0

{

unsigned char i

if(RI)

{

for(i=0i{

while(!RI)

table[i]=SBUF

RI=0 //清标志位

}

}

}

再将用森枯查询法数组中的数据循环发送给电脑

/********************************************

*串口数据发送

*功能:向串行口缓冲区察清发送n个数据

********************************************/

void send(void)

{

for(j=0j {

SBUF=Table[i] //将字符发送至缓冲区

while(!TI)//等待发送完成

TI=0 //清中断标志

}

}

串口裂滑收发,要有通信协议。也就是什么时候开始接收,接收到指令后,转发什么数据。这个要知道,才可以写。而且使用不同的51单片机,其内部寄存器配置是不同的。

一般来说,过程如下:

1,配置串口参数、波特率等,开启串口中断;

void Init_UART()

{

}

2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;

程序一般为:

void UART_ISR() interrupt x using y

{

串口中断搏弯处理函数

}

x - 单片机的C51中断号

y - 指定使用的当前工作寄肆银腊存器组号(0-3 PSW中的RS0,RS1组合)

3,主程序

int main(void)

{

Init_UART()

while(1)

{

//数据发送函数

}

}

我用颤码贺的新唐芯片,8051内核,跟51差不多,望采纳茄派

void UART_Initial (void)

{

P02_Quasi_Mode //Setting UART pin as Quasi mode for transmit

P16_Quasi_Mode //Setting UART pin as Quasi mode for transmit

SCON_1 = 0x50 //UART1 Mode1,REN_1=1,TI_1=1

T3CON = 0x08 //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1

clr_BRCK

RH3= HIBYTE(65536 - (1000000/u32Baudrate)-1) /*16 MHz */

RL3= LOBYTE(65536 - (1000000/u32Baudrate)-1) /*16 MHz */

set_TR3//Trigger Timer3

}

以上是初始化的

void Send_Data_To_UART1(UINT8 c)

{

TI_1 = 0

SBUF_1 = c

while(TI_1==0)

}

这个是发送模世

void UART_isr (void) interrupt 4 //串行中断服务程序

{

if (RI_1==1)

{ /* if reception occur */

clr_RI_1/* clear reception flag for next reception */

Receive_Date[c] = SBUF_1

if (Receive_Date[0] == First_Date)

{

c++

}

else if(Receive_Date_Size >0 &&Receive_Date_Size <4)

{

c++

}

else if(Receive_Date[c] == Last_Date &&Receive_Date_Size ==4)

{

c = 0

Flag_Receive_One = 1

}

else

{

c = 0

}

}

}

接收


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8178973.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存