找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 320|回复: 0
收起左侧

STM32单片机PCAP01浮动三通道电容测量以及内部温度测量代码

[复制链接]
ID:1128637 发表于 2024-7-10 10:46 | 显示全部楼层 |阅读模式
使用串口发送、接收数据 ,CRC校验格式 CRC-8-MAXIM
////////////////////////////////////////////////////////////////////////////
通信格式:XX XX XX XX XX

上位机发送:第一字节:AA
                     第二字节:数据长度
                     第三字节:指令类别: 0x01(刷新率设置, 指令内容2字节 oxXX 0xXX   9999为1Hz, 999为10H,99为100Hz, 19为500Hz)
                                                          0x02(输出模式设置, 0x00为输出字符模式,0x01为输出十六进制模式) *注意:输出为字符模式  输出频率不可设置为500Hz
                                                          0x03(参考电容设置,指令内容4字节,前两字节为整数位,后两字节为小数位)               
                     末尾字节:CRC校验位

下位机发送:
默认为字符输出
十六进制输出: 第一字节:0x55
                          第二字节:数据长度
                          第三字节:数据类别(0x01 电容1/Rref,  0x02 电容2/Rref, 0x03 电容3/Rref,0x04 R(aul)/R(si))
                          数据内容  四个字节
                          末尾字节:CRC校验位
选择为十六进制输出模式时,将直接输出传感器的比值数据,须在上位机进行换算以及补偿

////////////////////////////////////////////////////////////////////////////
测试用例:

AA 06 01 03 e7 13 切换刷新频率

AA 05 02 01 48 切换输出格式

AA 08 03 00 64 00 00 27 设置参考电容
51hei图片_20240710104520.jpg
单片机源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"
  3. #include "timer.h"
  4. #include "pcap.h"

  5. int lenRFID=0,bleflag=0;
  6. u8 PreCmdBuff1[8],PreCmdBuff2[8],PreCmdBuff3[8],PreCmdBuff4[8];
  7. char TemCmdBuff[4]={0x55, 0x04, 0x0E, 0x6A};
  8. unsigned long Cap_msg1,Cap_msg2,Cap_msg3,Cap_msg4;
  9. float Cap_val1,Cap_val2,Cap_val3,Cap_val4,refC=100;
  10. u8 Uartrecive[8];
  11. int outputflag=0;
  12. int main(void)        
  13. {
  14.         int i;
  15.         

  16.         delay_init();                               //=====延时函数初始化        
  17.   uart1_init(230400);                   //=====串口1初始化
  18.         SPI_SoftInit();
  19.         TIM3_Int_Init(9999,7199);
  20.         NVIC_Configuration();
  21.         LED_Init();
  22.         cap01_init();
  23.   while(1)        
  24.         {
  25.                 //Uart1SendBuf(TemCmdBuff,4);
  26.                 //delay_ms(5);
  27.                 //Uart1SendBuf(PreCmdBuff,4);
  28.                 //Disp_Proc();
  29.         }         
  30. }

复制代码

原理图: 无
仿真: 无
代码: HPCL.7z (222.59 KB, 下载次数: 4)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表