精华内容
下载资源
问答
  • stm32f103串口接收数据发送数组数据,代码主要在中断函数里,接收到数据后会发送数组中的数据,可以根据要求修改,简单易学,通过了编译
  • 打算用单片机发送一个数组recevie[8],应该怎么做啊:#include#define uchar unsigned char#define uint unsigned intuchar n=0;uchar receive[8];uchar n;uchar m;void UartInit(void) //9600bps@11.0592MHz{SCON =...

    打算用单片机发送一个数组recevie[8],应该怎么做啊:

    #include

    #define uchar unsigned char

    #define uint unsigned int

    uchar n=0;

    uchar receive[8];

    uchar n;

    uchar m;

    void UartInit(void)                //9600bps@11.0592MHz

    {

    SCON = 0x50;                //8位数据,可变波特率

    AUXR |= 0x40;                //定时器1时钟为Fosc,即1T

    AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器

    TMOD &= 0x0F;                //设定定时器1为16位自动重装方式

    TL1 = 0xE0;                //设定定时初值

    TH1 = 0xFE;                //设定定时初值

    ET1 = 0;                //禁止定时器1中断

    TR1 = 1;                //启动定时器1

    EA=1;

    ES=1;

    }

    void delayms(uint z)

    {

    uint x,y;

    for(x=z;x>0;x--)

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

    }

    void uart_send(receive)

    {

    uchar i;

    ES=0;

    for(i=0;i<8;i++)

    {

    SBUF=receive[i];

    while(!TI);

    TI=0;

    }

    ES=1;

    }

    void uart_rec() interrupt 4

    {

    if(RI)

    {

    receive[n]=SBUF;

    n++;

    if(n==7)

    {

    ES=0;

    }

    RI=0;

    }

    }

    void main()

    {

    UartInit();

    while(1)

    {

    P0=receive[0];

    P1=receive[1];

    delayms(4000);

    P0=receive[2];

    P1=receive[3];

    delayms(4000);

    P0=receive[4];

    P1=receive[5];

    delayms(4000);

    P0=receive[6];

    P1=receive[7];

    delayms(4000);

    if(n==7)

    {

    uart_send(receive);

    }

    n=0;

    }

    }

    我这个程序是当单片机收到8个字节的数据,放到数组中,然后从串口发送出去,有做过这个的朋友吗,哪个地方错了啊。

    展开全文
  • 发送单个数据是低位先发,发送一个数组是地址小的字节先发,然后依次发完,每个byte都有独立的开始位0、停止位1。所以如果使用8N1格式,那就是发送1个字节需要10bit,而不是8bit。波特率115200 = 115200 (位/秒),...

    发送单个数据是低位先发,发送一个数组是地址小的字节先发,然后依次发完,每个byte都有独立的开始位0、停止位1。所以如果使用8N1格式,那就是发送1个字节需要10bit,而不是8bit。波特率115200 = 115200 (位/秒),也就是1s最大发送115200/10=11520个字节,发送一个字节需要约86.8us。1/11520=86.805555555555556 us。
    波形如下,实测的,话不多说,直接上干货,看图就明白。
    在这里插入图片描述

    展开全文
  • arduino用来发送串口数组

    千次阅读 2020-12-19 11:59:47
    //arduino用来发送串口数组,用char来定义数组,用Serial.write...//来发送数组#include #include #include int j=40;char numdata1[]={0xAA,0x01,0x01,0x00,0x50,0x3c,0x04};char numdata2[]={0xAA,0x02,0x02,...

    //arduino用来发送串口数组,用char来定义数组,用Serial.write(numdata1,sizeof(numdata1));

    //来发送数组

    #include

    #include

    #include

    int  j=40;

    char numdata1[]={0xAA,0x01,0x01,0x00,0x50,0x3c,0x04};

    char numdata2[]={0xAA,0x02,0x02,0x01,0x50,0x3c,0x04};

    void _loop()

    {

    }

    void _delay(float seconds)

    {

    long endTime = millis() + seconds * 1000;

    while(millis() < endTime)_loop();

    }

    void setup()

    {

    Serial.begin(115200);

    }

    void loop()

    {

    for(j=numdata1[4];j>1;j--)

    {

    numdata1[6]=j ;

    //Serial.println(numdata1);

    Serial.write(numdata1,sizeof(numdata1));

    _delay(3);

    }

    for(j=numdata2[4];j>1;j--)

    {

    numdata2[6]=j ;

    //Serial.println(numdata2);

    Serial.write(numdata2,sizeof(numdata2));

    _delay(3);

    }

    }

    展开全文
  • byte[] bte = { 170, 0, 15, 31,, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204 };... 这样发送一个数组会报错,要转成string类型,但转成后发送就不是想要的数据了。比如要发送:AA 00 31 00 00 CC 这样的数据。求大佬解惑
  • USART串口发送数组.zip

    2021-12-22 23:44:26
    用STM32F407 的usart串口向外发送定长数组数组长度可以由自己来配置。UP主用该程序实现了泽耀科技AS32-TTL-1W 数传模块的数据发送,另一端可以接在电脑上接收到数据
  • STM32 串口发送数据(发送一个字节,以及数组)   #include"usart1.h" //#include //加载MDK 自带的 C 函数 D:\Keil\C51\INC //串口1 配置 void USART1_Config(void) {  GPIO_...

    STM32 串口发送数据(发送一个字节,以及数组)

     
    1. #include"usart1.h"
    2. //#include   //加载MDK 自带的 C 函数  D:\Keil\C51\INC

    3. //串口1 配置
    4. void USART1_Config(void)
    5. {

    6.         GPIO_InitTypeDef GPIO_InitStructure; //定义结构体 
    7.         // 结构体内容在stm32f10x_gpio.h  101行        //  见库函数 P125页  

    8.         USART_InitTypeDef USART_InitStructure;         //定义结构体 
    9.         // 结构体内容在stm32f10x_usart.h  76行        //   库函数的348页

    10.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);
    11.         //打开时钟

    12.         //初始化GPIO 见库函数 P125页 
    13.            
    14.        
    15.          
    16.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;           //要设置的PIN
    17. //        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出

    18.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
    19.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;        //输出速度
    20.         GPIO_Init(GPIOA,&GPIO_InitStructure);        //配置 IO

    21.        
    22.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //RX 接收引脚
    23.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        //浮空输入模式
    24.         GPIO_Init(GPIOA, &GPIO_InitStructure);          //配置IO口


    25.         // 结构体内容在stm32f10x_usart.h  76行        //   库函数的348页
    26.        
    27.         USART_InitStructure.USART_BaudRate=9600;   //设定波特率 
    28.         USART_InitStructure.USART_WordLength=USART_WordLength_8b;  //8位数据
    29.         USART_InitStructure.USART_StopBits=USART_StopBits_1;   //停止位1位
    30.         USART_InitStructure.USART_Parity=USART_Parity_No;  //无校验位
    31.         USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无硬件控制 CTS RTS 
    32.         USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;  //发送接收 使能
    33.         USART_Init(USART1,&USART_InitStructure); //配置USART1
    34.         
    35.         USART_Cmd(USART1,ENABLE); //使能 串口1        
    36. }

    37. void USART1_Send_Byte(unsigned char byte)   //串口发送一个字节
    38. {
    39.         USART_SendData(USART1, byte);        //通过库函数  发送数据
    40.         while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);  
    41.         //等待发送完成。   检测 USART_FLAG_TC 是否置1;    //见库函数 P359 介绍
    42.         
    43. }


    44. //发送字符串 函数   应用指针 方法
    45. void UART1_Send_Str(unsigned char *s)//发送字符串 函数   应用指针 方法
    46. {
    47.         unsigned char i=0;  //定义一个局部变量  用来 发送字符串 ++运算

    48.         while(s[i]!='\0')  // 每个字符串结尾 都是以  \0 结尾的
    49.         {
    50.                 USART_SendData(USART1,s[i]);        //通过库函数  发送数据
    51.                 while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);  
    52.                 //等待发送完成。   检测 USART_FLAG_TC 是否置1;    //见库函数 P359 介绍

    53.                 i++;                 //i++一次
    54.         }

    55. }


    56. void UART1_Send_Array(unsigned char send_array[],unsigned char num) //两个参数 一是数组(的数据) 二是数组长度1-255 
    57. {
    58.         //串口发送
    59.         unsigned char i=0;  //定义一个局部变量  用来 发送字符串 ++运算


    60.         while(i
    61.         {
    62.                 
    63.                 USART_SendData(USART1,send_array[i]);        //通过库函数  发送数据
    64.                 while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);  
    65.                 //等待发送完成。   检测 USART_FLAG_TC 是否置1;    //见库函数 P359 介绍

    66.                 i++;  //值 加一         
    67.         }
    68.         
    69. }
    展开全文
  • 无法发送整个数组串口调试助手显示结果如下: <p><img alt="" height="555" src="https://img-ask.csdnimg.cn/upload/1619348918216.png" width="565" /></p> 将if(k1==0)删了后,...
  • 串口的通信的处理,看这篇文章或许对你有帮助哦
  • 单片机串口通信中,接收多位数据数组发送多位数据的代码 // 下面的代码用于:单片机的串口何上位机的串口进行通信,上位机发送数据是“abcd”就开灯,如果是“abde”就关灯。 /*****************************...
  • MATLAB串口发送数据

    2021-01-12 19:05:12
    可以实时串口发送数据
  • STM32串口发送十六进制的数组

    万次阅读 多人点赞 2018-07-24 21:43:15
    通过串口发送十六进制的数组的方法有很多种,这里我介绍一种最简单也最使用的一种方法。 我这里使用的板子是STM32F103RCT6,使用串口2,usart2.c的代码如下: #include "delay.h" #include "usart...
  • 1、demo带串口发送指令,主要是电子秤开发 2、发送指令后,同时接受数据到变量里 3、同时也封装好串口通信的类 好的话 给个赞吧,一直找不到C++ 的发送同时接受的demo,最后自己写了
  • 最近用stm32编写串口发送程序,在硬件方面需要做如下准备: 1.stm32开发板,这里我的是stm32f...3.如何实现软件串口助手和硬件单片机的连接呢,我们还需要一个 USB-TTL,即 没有串口的 电脑,用 USB 接口 与 TTL ...
  • STM32串口发送16位数组

    2021-08-01 13:29:38
    写这个程序的主要目的就是实现通过STM32的串口1发送十六位数组至上位机。因为正点原子的例程中只能发送单个8位数据至上位机,网上关于这个方面的资料也非常的少,所以,如果有这方面的需求要自己封装函数来达到效果...
  • 串口发送大数组

    千次阅读 2016-09-08 01:13:00
    用stm32f4XX发送采集到的数据时,如果数据量特别大,直接发送一个大数组可能比较占内存。 这时候,可以逐个发送数据。 最好将大数组定义为全局变量。 定义在函数内时,可能导致栈不够深而报错。 其模式可以为: ...
  • <p>51单片机串口发送数组(只是发送),串口发送的是8位数据,那如果数组里的数据不是8位怎么办,最好有例程</p>
  • 1.tty数据发送调用关系 怎么样才能找到发送数据所使用的函数呢?打开uart_register_driver函数,找到里面的tty_register_driver,转到定义,这里调用了tty_fops这个结构,这几结构里就保存了读写串口的函数tty_...
  • 单片机发送16进制数组,用的STC单片机。很实用!是我给一个产品订做的。4个按钮,发送4组不同代码!
  • Qt使用自带类实现串口通信,包括串口发送数据串口的接收数据
  • 软件能够实现,串口设置串口号、波特率、奇偶校验位、停止位、流控制,以及发送数据格式转换等问题。同时具备网络传输协议,能够通过网络发送数据,自己若能够进行改进能够实现串口网络数据接口的互联互通。
  • 最近用stm32编写串口发送程序,在硬件方面需要做如下准备: 1.stm32开发板,这里我的是stm32f...3.如何实现软件串口助手和硬件单片机的连接呢,我们还需要一个 USB-TTL,即 没有串口的 电脑,用 USB 接口 与 TTL ...
  • 使用MSP430F149芯片,透过串口给电脑发送数据,波特率9600,8数据,无校验,。发送数据先是 MCU sends 0~127 to PC and the\\n screen will display their corresponding\\n ASCII code as follows:然后是...
  • PC上位机通过串口发送数据至fpga,fpga存储数据至ram并将接收的数据通过串口发送至pc上位机
  • python 实现串口发送数据

    万次阅读 2019-07-19 11:04:35
    功能: 发送指定AT命令到设备 实现关机 ''' import serialser def poweroffSchedule(): ser=serial.Serial("COM5",115200,timeout=0.5) ser.write('AT+POWER_OFF\r\n'.encode()) print(ser.readline()); ser....
  • 写在前面: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正...那么我们这时候如果我们用这个数组来接收串口接收信息,信息的格式是: 数据头 ->数据长度 ->数据区 ->数据校验 ->数据尾 假设数据
  • 这是一个大致框架,首先我们打开串口,然后将u16类型的数据放入u8类型的rec_data里。看下后面绿字备注,可以知道‘S’'E'分别代表协议中的开始与结束符,最下面那个判断是说传输的数据字节在0~UART3_REC_NUM之间时...
  • 很少看到有资料写如何以中断的方式发送一帧数据,如果以...//索引,指向需要发送数组的位置 int length;//整个数据帧的长度 char *buf;//指向需要发送的数据帧,建议为全局变量,否则一旦开始发送,必须等到发送结束
  • 串口初始化编写发送函数发送一个字节函数发送半字函数发送字函数发送字符串函数发送数组函数重新定向printf函数 简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分...
  • 这里写目录标题串口发送数据串口接受数据 串口发送数据 1、串口发送数据最直接的方式就是标准调用库函数 。 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); 第一个参数是发送的串口号,第二个参数是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,836
精华内容 13,134
关键字:

串口发送数组数据