|
使用串口發(fā)送、接收數(shù)據(jù) ,CRC校驗(yàn)格式 CRC-8-MAXIM
////////////////////////////////////////////////////////////////////////////
通信格式:XX XX XX XX XX
上位機(jī)發(fā)送:第一字節(jié):AA
第二字節(jié):數(shù)據(jù)長(zhǎng)度
第三字節(jié):指令類別: 0x01(刷新率設(shè)置, 指令內(nèi)容2字節(jié) oxXX 0xXX 9999為1Hz, 999為10H,99為100Hz, 19為500Hz)
0x02(輸出模式設(shè)置, 0x00為輸出字符模式,0x01為輸出十六進(jìn)制模式) *注意:輸出為字符模式 輸出頻率不可設(shè)置為500Hz
0x03(參考電容設(shè)置,指令內(nèi)容4字節(jié),前兩字節(jié)為整數(shù)位,后兩字節(jié)為小數(shù)位)
末尾字節(jié):CRC校驗(yàn)位
下位機(jī)發(fā)送:
默認(rèn)為字符輸出
十六進(jìn)制輸出: 第一字節(jié):0x55
第二字節(jié):數(shù)據(jù)長(zhǎng)度
第三字節(jié):數(shù)據(jù)類別(0x01 電容1/Rref, 0x02 電容2/Rref, 0x03 電容3/Rref,0x04 R(aul)/R(si))
數(shù)據(jù)內(nèi)容 四個(gè)字節(jié)
末尾字節(jié):CRC校驗(yàn)位
選擇為十六進(jìn)制輸出模式時(shí),將直接輸出傳感器的比值數(shù)據(jù),須在上位機(jī)進(jìn)行換算以及補(bǔ)償
////////////////////////////////////////////////////////////////////////////
測(cè)試用例:
AA 06 01 03 e7 13 切換刷新頻率
AA 05 02 01 48 切換輸出格式
AA 08 03 00 64 00 00 27 設(shè)置參考電容
51hei圖片_20240710104520.jpg (114.77 KB, 下載次數(shù): 8)
下載附件
2024-7-10 10:45 上傳
單片機(jī)源程序如下:
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
- #include "pcap.h"
- int lenRFID=0,bleflag=0;
- u8 PreCmdBuff1[8],PreCmdBuff2[8],PreCmdBuff3[8],PreCmdBuff4[8];
- char TemCmdBuff[4]={0x55, 0x04, 0x0E, 0x6A};
- unsigned long Cap_msg1,Cap_msg2,Cap_msg3,Cap_msg4;
- float Cap_val1,Cap_val2,Cap_val3,Cap_val4,refC=100;
- u8 Uartrecive[8];
- int outputflag=0;
- int main(void)
- {
- int i;
-
- delay_init(); //=====延時(shí)函數(shù)初始化
- uart1_init(230400); //=====串口1初始化
- SPI_SoftInit();
- TIM3_Int_Init(9999,7199);
- NVIC_Configuration();
- LED_Init();
- cap01_init();
- while(1)
- {
- //Uart1SendBuf(TemCmdBuff,4);
- //delay_ms(5);
- //Uart1SendBuf(PreCmdBuff,4);
- //Disp_Proc();
- }
- }
復(fù)制代碼
原理圖: 無
仿真: 無
代碼:
HPCL.7z
(222.59 KB, 下載次數(shù): 15)
2024-7-10 14:21 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|