久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 哪位大佬有用單片機(jī)串口發(fā)送接收l(shuí)ong int數(shù)據(jù)的經(jīng)驗(yàn)? [打印本頁(yè)]

作者: killzreo    時(shí)間: 2019-3-27 11:55
標(biāo)題: 哪位大佬有用單片機(jī)串口發(fā)送接收l(shuí)ong int數(shù)據(jù)的經(jīng)驗(yàn)?
最近做個(gè)小玩意兒遇到了點(diǎn)麻煩,要求用串口通信,但我要傳輸?shù)臄?shù)據(jù)是long int型的,要在程序上做修改,不知道哪位大佬有用串口發(fā)送接收l(shuí)ong int數(shù)據(jù)的經(jīng)驗(yàn),求分享謝謝

作者: xuyaqi    時(shí)間: 2019-3-27 22:07
那你的程序呢
作者: wulin    時(shí)間: 2019-3-28 07:29
把 long、int 型數(shù)據(jù)按字節(jié)拆分發(fā)送,接收方收到后再還原。這種自定義通訊協(xié)議都會(huì)包含數(shù)據(jù)類型和長(zhǎng)度信息。例如:
        int  x;
        char a,b;
        //拆分
        a=x>>8;
        b=x;
        //合并
        x=(int)(a<<8)|b;
作者: cjm82    時(shí)間: 2019-3-28 11:18
可以用聯(lián)合體,一個(gè)LONG的64位拆分成4個(gè)8位的CHAR
作者: cjm82    時(shí)間: 2019-3-28 11:26
以前的代碼,你可以參考下.里面?zhèn)鞯氖莊loat,long int只要改下就行了
//=================頭文件======================
#ifndef __UART_H_
#define __UART_H_
#include <stc8f.h>
#include <intrins.h>
typedef union                                   //float聯(lián)合體
{
        float value;
        unsigned char byte[4];
}float_data;

#define FOSC 11059200UL                         //晶振頻率
#define BRT (65536-FOSC/9600/4)                 //波特率設(shè)置

void UartInit();
void UartSend(char dat);
void SendUint(unsigned int value);
void UartSendStr(char *p);
void SendFloat(float_data* float_union);

#endif

//===================C文件=====================
#include "uart.h"

char Uart_get_char;

void UartIsr() interrupt 4
{
        RI = 0;
        Uart_get_char = SBUF;           //讀
}

void UartInit()
{
        SCON = 0x50;
        T2L = BRT;                 //波特率設(shè)置
        T2H = BRT>>8;
        AUXR = 0x15;
        ES = 1;
        EA = 1;
}

void UartSend(char dat)      //送1個(gè)字節(jié)
{
        SBUF = dat;
        while(!TI);
        TI = 0;
}

void SendUint(unsigned int value)  //送U16數(shù)據(jù)
{
        unsigned char valueH = 0;
        unsigned char valueL = 0;
        valueL |= value;
        valueH |= value >> 8;
        UartSend(valueL);
        UartSend(valueH);
       
}

void SendFloat(float_data* float_union)  //送float數(shù)據(jù)
{
        UartSend(float_union->byte[3]);
        UartSend(float_union->byte[2]);
        UartSend(float_union->byte[1]);
        UartSend(float_union->byte[0]);
}
//==============================================
基本都是從手冊(cè)上照搬的代碼,稍作修改整理就行了.
作者: 笨笨兔    時(shí)間: 2019-3-28 11:38
覺得串口通信時(shí)數(shù)據(jù)的收發(fā)你根本不明白,還是多學(xué)點(diǎn)基礎(chǔ)的東西吧。
我覺得你根本不知道什么是 long int數(shù)據(jù) 。

作者: yzwzfyz    時(shí)間: 2019-3-28 13:26
同意6樓意見
作者: 天風(fēng)情    時(shí)間: 2019-3-28 14:45
設(shè)置一個(gè)數(shù)組,用幀傳輸。
作者: 張-小小龍    時(shí)間: 2019-3-28 15:41
定義一個(gè)字節(jié)數(shù)組,如果是需要接收數(shù)據(jù),就用數(shù)組先接收,接收完畢之后再計(jì)算,如果是發(fā)送,通過(guò)程序?qū)?shù)據(jù)分成一個(gè)一個(gè)的字節(jié),然后通過(guò)串口一個(gè)一個(gè)的發(fā)送字節(jié)。

作者: jokercn    時(shí)間: 2019-3-28 19:11
學(xué)到了。。。新手路過(guò)
作者: killzreo    時(shí)間: 2019-3-28 20:46
cjm82 發(fā)表于 2019-3-28 11:26
以前的代碼,你可以參考下.里面?zhèn)鞯氖莊loat,long int只要改下就行了
//=================頭文件=========== ...

謝謝
作者: killzreo    時(shí)間: 2019-3-28 20:52
笨笨兔 發(fā)表于 2019-3-28 11:38
覺得串口通信時(shí)數(shù)據(jù)的收發(fā)你根本不明白,還是多學(xué)點(diǎn)基礎(chǔ)的東西吧。
我覺得你根本不知道什么是 long int數(shù) ...

謝謝批評(píng)
作者: 奮斗的小白熊    時(shí)間: 2019-3-28 21:02
首先你要明白串口接收和發(fā)送最大數(shù)據(jù)為多大255  然后把你接收 發(fā)送數(shù)據(jù)進(jìn)行分解 或者合并 如果是發(fā)送數(shù)據(jù) date大于255 可以這樣 date_h=(date&0xff00)>>8; date_l=date&0xff; 然后分別發(fā)送  這就是發(fā)送時(shí)的分解   然后接收就是合并 date=(date_h<<8)|date_l;  我認(rèn)為是這樣的。希望可以幫助你。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产精品成人无久久精品 | 久久中文字幕一区 | 久久久久久综合 | 国产精品theporn | 日韩欧美在线一区二区 | 99精品久久久国产一区二区三 | 日韩欧美一区二区三区四区 | 二区不卡 | 日韩高清一区 | 亚洲视频一区在线 | 亚洲国产成人av | 国产成人精品免费 | 亚洲人成网亚洲欧洲无码 | 中文字幕二区 | 91精品国产高清久久久久久久久 | 91色网站| 国产精品乱码一区二区三区 | 男人天堂视频在线观看 | 女人精96xxx免费网站p | 欧美日韩一区二区在线观看 | 日韩一区中文字幕 | 黄色一级特级片 | 美国一级黄色片 | 国产精品色一区二区三区 | 91久久久久| 午夜爽爽爽男女免费观看 | 亚洲一区二区三区视频在线 | 久久久久亚洲精品 | 一区二区成人 | 日韩中文字幕一区二区三区 | 国产成人福利视频在线观看 | 成人国产精品久久 | 日韩影音| 男人天堂网址 | 欧美九九 | 欧美日本韩国一区二区三区 | 国产精品久久久久久妇女 | 性色在线 | 丝袜美腿一区 | 国产精品视频久久久久 | 中文字幕二区 |