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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2876|回復: 1
打印 上一主題 下一主題
收起左側

別人寫的上位機調PID,單片機下位機程序,如何整合到自己的程序,只改UARTMA嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:296924 發表于 2018-6-4 23:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*
* wave.h
*
*  Created on: Nov 29, 2014
*      Author: ass
*/
#ifndef WAVE_H_
#define WAVE_H_

#include "uart.h"

void Uart1_Send_AF(signed int aa,signed int bb,signed int cc,signed int dd,signed int ee,signed int ff,signed int gg,signed int hh);
unsigned char UART_Putc(unsigned char data);
void send_wave(void);

void printhh(void);
void print5n(unsigned int x);
void print4n(unsigned int x);
void print3n(unsigned int x);
void print2n(unsigned int x);

#endif /* WAVE_H_ */



#include "wave.h"
#include "uart.h"

#define tx_num        32

unsigned char TxBuffer[tx_num];
unsigned char count=0;

#define BYTE0(dwTemp)       (*(char *)(&dwTemp))
#define BYTE1(dwTemp)       (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp)       (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp)       (*((char *)(&dwTemp) + 3))

/**************************向物理串口發一個字節***************************************
*******************************************************************************/
__inline unsigned char UART_Putc(unsigned char data)                        //
{
        uart_send1(UART_1,data);
        return data;
}

unsigned char Uart1_Put_Char(unsigned char DataToSend)
{
        TxBuffer[count++] = DataToSend;  
        return DataToSend;
}

unsigned char Uart1_Put_Int16(uint16_t DataToSend)
{
        unsigned char sum = 0;
        TxBuffer[count++] = BYTE1(DataToSend);
        TxBuffer[count++] = BYTE0(DataToSend);
        sum += BYTE1(DataToSend);
        sum += BYTE0(DataToSend);
        return sum;
}


void Uart1_Send_AF(signed int aa,signed int bb,signed int cc,signed int dd,signed int ee,signed int ff,signed int gg,signed int hh)
{
        unsigned char sum = 0;
        count=0;
        sum += Uart1_Put_Char(0x88);
        sum += Uart1_Put_Char(0xAF);
        sum += Uart1_Put_Char(0x1C);
        sum += Uart1_Put_Char(BYTE1(aa));//1
        sum += Uart1_Put_Char(BYTE0(aa));
        sum += Uart1_Put_Char(BYTE1(bb));//2
        sum += Uart1_Put_Char(BYTE0(bb));
        sum += Uart1_Put_Char(BYTE1(cc));//3
        sum += Uart1_Put_Char(BYTE0(cc));
        sum += Uart1_Put_Char(BYTE1(dd));//4
        sum += Uart1_Put_Char(BYTE0(dd));
        sum += Uart1_Put_Char(BYTE1(ee));//5
        sum += Uart1_Put_Char(BYTE0(ee));
        sum += Uart1_Put_Char(BYTE1(ff));//6
        sum += Uart1_Put_Char(BYTE0(ff));
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        sum += Uart1_Put_Char(BYTE1(gg));//7,4500->45'//這是姿態!!!
        sum += Uart1_Put_Char(BYTE0(gg));
        sum += Uart1_Put_Char(BYTE1(hh));//8
        sum += Uart1_Put_Char(BYTE0(hh));
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(0);
        Uart1_Put_Char(sum);
}

void send_wave(void)
{
        char count_1=0;
        while(count_1<tx_num)
      UART_Putc(TxBuffer[count_1++]);
}
///////////////////////////////////////////////////////////////////////

void printhh(void)
  {
        UART_Putc(0x0d);                                //output'CR'
        UART_Putc(0x0A);                                //output'CR'
  }

void print5n(unsigned int x)
  {         
           UART_Putc((x/10000)+0x30);           //計算萬位數字
           UART_Putc(((x%10000)/1000)+0x30);    //計算千位數字
           UART_Putc(((x%1000)/100)+0x30);      //計算百位數字
           UART_Putc(((x%100)/10)+0x30);        //計算十位數字
           UART_Putc((x%10)+0x30);              //計算個位數字
  }

void print4n(unsigned int x)
  {         
          UART_Putc((x/1000)+0x30);    //計算千位數字
          UART_Putc(((x%1000)/100)+0x30);      //計算百位數字
          UART_Putc(((x%100)/10)+0x30);        //計算十位數字
          UART_Putc((x%10)+0x30);              //計算個位數字
  }
void print3n(unsigned int x)
{
        UART_Putc((x/100)+0x30);      //計算百位數字
        UART_Putc(((x%100)/10)+0x30);        //計算十位數字
        UART_Putc((x%10)+0x30);   
}
void print2n(unsigned int x)
{

        UART_Putc((x/10)+0x30);        //計算十位數字
        UART_Putc((x%10)+0x30);   
}




這好像是別人寫的下位機程序,但是我不知道怎么整合到自己的程序里想調PID,是只要改UARTMA嗎?具體的怎么改?望大佬不吝賜教。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:318095 發表于 2018-6-5 09:22 | 只看該作者
上位機一般都是用c++寫的 ,單片機程序一般用c語言或匯編。 你這個程序沒有主函數也不是匯編語言,看著不像是下位機用的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人国产精品久久 | 高清视频一区二区三区 | 亚洲欧美精品久久 | 色综合99 | 国产高清精品在线 | 亚洲性在线 | 欧美久久久久久 | 欧美精品片 | 国产欧美精品在线观看 | 精品91 | 亚洲国产精品久久久久秋霞不卡 | а√中文在线8 | 午夜精品久久 | 国产高清在线观看 | 美女视频黄的免费 | 精品久久久久久久人人人人传媒 | 一本色道精品久久一区二区三区 | 丝袜美腿一区 | 久久不卡区 | 久久草视频 | 日韩黄色免费 | 九九精品网| 久久久精品一区 | 一本大道久久a久久精二百 欧洲一区二区三区 | 欧美在线视频一区二区 | 激情综合五月天 | 人人九九精 | 国产精品一区二区三级 | 国产综合区 | 中文字幕av亚洲精品一部二部 | 青青久久 | 成人av观看 | 国产成人精品在线 | 成人精品一区 | 天堂av影院| 91中文在线观看 | 亚洲一本 | 亚洲欧美在线一区 | 中文字幕在线观看 | 欧美激情网站 | 夜夜精品浪潮av一区二区三区 |