This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/RF430FRL152H:关于 ADC0数据采集配置

Guru**** 2439560 points
Other Parts Discussed in Thread: RF430FRL152H, MSP430G2553, RF430FRL152HEVM, MSP430F5529

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/956315/ccs-rf430frl152h-about-adc0-data-acquisition-configuration

器件型号:RF430FRL152H
主题中讨论的其他器件: MSP430G2553MSP430F5529

工具/软件:Code Composer Studio

您好!

我想使用 RF430FRL152H 和 TRF7970ABP+MSP430G2553 测量 模拟信号。  我想实现以下函数:

(__LW_AT__1)RF430FRL152H 中的 ADC 以20Hz~25Hz 的采样频率对模拟信号进行采样;

(__LW_AT__2)TRF7970ABP+MSP430G2553通过射频场获取信号、并通过串行端口将信号发送到 PC 、以进行实时和连续采集。

那么、有一个我在 RF430FRL152H 中编程的代码

 -------------------------------------- 代码空间-------------------------------------------------------

#include 
#include 
#include "types.h"

//********* 函数原型******** /
void DeviceInit(void);
void initISO15693 (U16_t parameters );
void SetupSD14 (unsigned char channel);
//******** /u16_t
SamplesBuffer[4];
//u08_t State;

//enum state_type
//{
// idle_State= 1、
// One_shot_TEMP_reference_sample_State = 2、
// One_Shot TEMP_Thermister_SAMPLE_SAMPLE_STATE = 3、
//};

枚举 Channel_Types
{
ADC0_CHANNEL = 0x0、
INTERNAL_TEMP_CHANNEL = 0x1、
热敏电阻_ADC2_CHANNEL = 0x2、
参考_ADC1_CHANNEL = 0x3
、};

//********* 定义********* /
#define CLEAR_BLOCK_LOCK_LOCsBIT3
#define FRAM_LOCK_BLOCK_SAGE_SIZE38
#define FRAM_LOCK_BLOCK0xF840 // ISO15693锁定块的地址


#define ROM_EUSCI_SUPPING_ENABLED 位2
#define EROM_EUSCI_SUPPING_DISABLED 0
#define ROM_SENSOR_SUPPING_ENABLED BIT7
#define ROM_SENSOR_SUPPING_DISABLED 0
#defineNFC_BIDGE_DISABLED6
#defineNFC_BIDGE_ENABLED0
#define8_BYTE_BLOCKBIT0
#define4_BYTE_BLOCK0
#defineFIRST_ISO_PAGEBIT1
#definesecond_iso_page0

/*固件系统控制字节
*
位0:ISOBlockSize0 - 4字节、1 - 8字节
* 位1:PAGE0 - PAGE 1、1 - PAGE 0 (仅对4字节块模式有效)
* 位2:ROMEUSCISupportEnabled0 -禁用、1 -启用(在 RF430FRL153H 上强制为0)
* 位3-5:被保留 ISO
* 位6:NFCBridgeDisable0 -启用、1 -禁用(请参阅下面的注释)
* 位7:ROMSensorSupportEnable0 -禁用、1 -启用(在 RF430FRL154H 上强制为0)
*
建议在此项目中禁用 NFC 桥接器。 可能会发生意外行为
、* 使用它、因为这里设置了配置。
*
* 如果需要 eUSCI 主机控制器部分以及射频功能、则为默认项目
* 必须使用。 这就是 NFC 在该应用中不受支持(因为 I2C/SPI 主机控制
器* 控制寄存器位于 NFC 文件所需的同一位置)。 但是 FRAM 的其余部分
* 存储器可用于存储和读取、使用 ISO15693。
*/
#define firmware_control_address0xF867
#pragma RETAIN (Firmware_System_Control_Byte);
#pragma LOCATION = firmware_control_address
const u08_t Firmware_System_Control_Byte = ROM_SENSOR_SUPPING_DISABLED + EROM_EUSCI_SUPPING_DISABLE_DISABLE_LOCTE+ NFC_BUTE_LOCK_LOCK_MODED + FETY_RETOOT_BLE_ROM_TOBLE_ROM_REGATE + FIRST_RESULL_ROM_


//声明不受编译器使用
的保护/******** /
#pragma RETAIN (DS)
#pragma LOCATION = 0x1C00
u08_t DS;
#pragma RETAIN (RF)
#pragma LOCATION = 0x1C6A
const u08_t RF;
#pragma RETAIN (NRX)
#pragma LOCATION = 0x1CA4 //
const u08_t NRX[34];#pragma
RETAx (N08
)#pragma RETAx (NRETAx)#pragma RETAIN = 0x1C12_t RETAx

(N08)#pragma RETAIN = 0x1C12_t RETAx (nT)


#pragma RETAIN (PF)
#pragma LOCATION = 0x1C0A
const U16_t PF[48];
/********* /

#define NDEF_START_ADDRESS0xF868
#pragma RETAIN (NFC_NDEF_Message);
#pragma LOCATION = NDEF_START_ADDRESS;//地址
const u08_t NFC_NDEF_Message[21]的位置={
//目前大多数 Android 应用程序不会将此消息识别为 NDEF,因为
Android /堆栈没有注册。 但是、支持 ISO15693 RFID 通信。
//块0
0xE1,// NDEF 魔法号
0x40,//版本号,读取/写入访问条件
0xF2,//F3*4/8 = 0x79 // 0x7E,// 1008字节/8 = 126块
0x00,//扩展内存//0x00,//不支持读取多个块(仅限于3个块)

//块
0x03// NDEF 消息存在
0x0B、//长度、11字节
0xD1、//记录标头
0x01、//类型长度

//块2
0x07、//有效载荷长度
0x55、//记录类型 U (URI)
0x01、// URI 标头标识
符0x74、//'t'

//块3
0x69、//'I'
0x2E、//'。
0x63、//'c'
0x6f、//'o'

//块4
0x6D、//'m'
0xFE、// TLV 终端
器0x00、//空无关
0x00、//空无关
};

/******* 总结
*此项目仅使用 RF430FRL15xH ROM 上的射频堆栈(ISO15693)。 此设置允许用户创建
从 FRAM 运行的*自定义应用程序。 只有运行 RF 堆栈
的 RF13M 矢量需要指向其* ROM 位置。
*

////////////////////////////
*主要内容

*
简介:
*
*帕拉姆[IN]:无
*

*帕拉姆[OUT]:无
*
返回:
*
/

void main()
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗

// ROM RF13M 模块设置**正确的 RF 堆栈操作需要以下三行
DS = 1;//需要在此处初始化 ROM 变量
ASM ("调用#0x5CDA ");//调用 ROM 函数(初始化函数指针)
asm ("调用#0x5CAC ");//调用 ROM 函数(检查器件配置)


initISO15693 (clear_block_locks);
DeviceInit();

while (1)
{
//State = One_shot_TEMP_reference_sample_State;
SetupSD14 (ADC0_channel);
}
//_bis_SR_register (LPM3_bits + GIE);//在这里对两个通道进行采样、SD14_ADC 将唤醒两次并将转换存储
到 samplesBuffer 中,最后一次转换将导致退出 LPM 模式并继续执行以下操作。
//可以对此处存储的转换执行处理
// SamplesBuffer[0]= ADC0转换结果
__bis_SR_register (LPM3_bits + GIE);
__no_operation();
}//

SetupSD14*
*要采样的通道(热敏电阻或基准电阻)*
*函数:此函数设置为对热敏电阻或基准电阻进行采样*/
void SetupSD14 (unsigned char channel)
{
//设置:要采样的通道、需要可编程放大器增益(2x)、CIC 滤波器、SD14INTDLY0、因为 CIC 滤波器需要至少两个连续的样本才能生成准确的结果
// SDRATE 以最快的结果但也不是最准确的、 SD14RBEN 也被启用、它是流入热敏电阻和基准电阻的电流源
SD14CTL1 = SD14GAIN_0 + SD14FILT_CIC + SD14RATE__CIC32 + SD14INTDLY_0 +通道;

//来自 ACLK 的时钟(来自 VLO 时钟的64kHz)、SD14DIV1设置为32倍分频(SD14需要2kHz 的时钟)、
SD14CTL0 = SD14IE + SD14DIV1; // 2kHz 采样率、ACLK 源、SVSS 接地(.125V)、中断使能

SD14CTL0 |= SD14EN; //启用 SD14模块,
SD14CTL0 |= SD14SC; //开始转换
}

//设置并读取 ADC0

#pragma vector=SD_ADC_vector
中断 void SD14_ADC (void)
{
switch (_evo_in_range (SD14IV、4))//SD14IV 寄存器状态:00h-无中断挂起;02h-SD14OVEM 溢出(SD14OVIFG);SD14OVIN_EXECTION
(SD14V



)/ SD14V 暂挂/ SD14V ~暂挂/ SD14V 暂挂/ SD14V 暂挂/ SD14V 暂挂

案例 SD14IV_RES:
SD14CTL0 &=~SD14IFG;//清除可用的数据中断
示例 Buffer[0]= SD14MEM0;
SD14CTL0 |= SD14EN + SD14SC;
/* if (State = One_SHOT_TEMP_reference_sample_State)
{
State = One_SHOT_TEMP_Thermistor_sample_State;
SamplesBuffer[0]= SD14MEM0; //热敏电阻电流偏置误差
设置 SD14 (thermister_ADC2_channel)的补偿; //设置 ADC 并开始转换
}
否则(状态= One_SHOT_TEMP_Thermistor_sample_State)
{
SamplesBuffer[1]= SD14MEM0; //热敏电阻电流偏置误差 SD14CTL0
&=~SD14EN 的补偿;//如果使用定时器
状态= IDLE_STATE 的连续读数,则禁用 SD14直到它重新启动;
//转换完成,数据可用
__BIC_SR_REGISTER_ON_EXIT (LPM4_BITS);//EXIT LPM 模式在此中断后
}*/
中断



*DeviceInit

*
*简介:初始化时钟系统和其他设置
* patchable function
*
* param[in]:parameters:具有这些独立选项
* Initialize_device_clock_system -初始化时钟系统
* populate_interrupt_vector_in_initialization -填充默认中断矢量并重新计算其 CRC
*
param[out]:无
*
返回无
*
*可修补:是
/
void DeviceInit (void)
{
P1SEL0 = 0xF0;//保留 JTAG
P1SEL1 = 0xF0;//保留 JTAG
P1DIR &=~0xEF;
P1REN = 0;

CCSCTL0 = CCSKEY; //解锁 CCS

CCSCTL1 = 0; //时钟速度不要减半
CCSCTL4 = SELA_1 + SELM_0 + SELS_0; //为 ACLK 选择 VLO 并为 MCLK 和 SMCLK 选择 HFCLK/DCO
CCSCTL5 = DIVA_2 + DIVM_1 + DIVS_1; //将 ACLK (4)、MCLK 和 SMCLK 的分频器设置为1
CCSCTL6 = XTOFF; //如果不使用晶振、则将其旋转
CCSCTL8 = ACLKREQEN + MCLKREQEN + SMCLKREQEN;//如果未使用时钟、则禁用时钟

CCSCTL0_H |= 0xFF; //锁定 CCS

返回;
}

/*********
*initISO15693

*
*简介:初始化射频堆栈
*
* param[in]:参数-设置 ISO15693 (清除锁定块的选项)的配置
*
param[out]:none
*
return 「无」
/
void initISO15693 (u16_t parameters)
{

//启用中断**请勿更改以下两行,
这两行是 RF13MCTL 中正确的射频堆栈操作所需的|| RF13MTXEN + RF13MRXEN + RF13MRFTOEN;//在 RF13M 模块
RF13MNT 上设置 Rx 和 TX 功能|= RF13MRXIE + RF13RXTRF13MTOEN;//如果

(参数& clear_block_lock)
为{,则在 RX 和超时以及过流和欠流检查上启用中断
//initializeBlockLockLockLocks();//inline 函数
memset (((u08_t *) FRAM_LOCK_BLOCK、0xFF、FRAM_LOCK_BLOCK_SAGE_SIZE); //块用零位锁定、 清除 FRAM 和 RAM 锁定块
}
//#pragma

vector = RFPMM_vector
//_INTERRUPT void RFPMM_ISR (void)
////


//////////#pragma vector = Port1_vector
//_interrupt port1_ISR (void)
//{
////////// pragma

ISR vector =






//#pragma COUT_0/ void /RF0_MODE/#BR_COUT_ADC/0/ void

//注释此行以使用 ROM 的 RF13M ISR,取消注释下一行,请参阅.cmd 文件以了解详细信息
#pragma CODE_SECTION (RF13M_ISR,".rf13m_ROM_ISR")//注释此行以创建将存在于 FRAM 中的自定义 RF13M ISR,绕过 ROM, 取消注释之前
的#pragma vector = RF13M_vector
__interrupt void RF13M_ISR (void)
{
//现在该矢量指向运行射频堆栈的 ROMS 固件位置。
//在此处输入代码将不更改 CODE_SECTION 行
//上面,而会导致错误。
//更改上面的代码部分将导致 ROM RF 堆栈被绕过。 需要创建新的处理程序
。}

//#pragma vector = WDT_Vector
//_INTERRUPT void WDT_ISR (void)
//////
//

////////#pragma vector = TIMER0_A1_vector
//_INTERRUPT void TimerA1_ISR (void)
////////////////


////#Sysma vector = TIMER0_A1_vector //(
void









)///中断/nvoid /中断/中断 向量/nvoid /中断向量///

------------------------------ 代码空间-------------------------------------------------------

我有这些问题

(__LW_AT__1)我的代码是正确的、为什么我无法实现连续和不间断的数据收集?

(__LW_AT__2)我的 ADC 是否设置正确? 我可以使用一些串行助理来获取数据吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    正如我写的、我无法检查和调试您的代码。

    根据我之前对 ROM 固件内置进行的测试、我能够以40ms 的连续采样率设置 ADC。 我在不编写自己的固件的情况下使用了 EVM GUI。 我看到您的应用程序的瓶颈是 "读取块"命令  的执行速度以及数据传输到 PC 的速度。  我的 PC 上的测试应用程序执行连续的"读取块 9"、重复率仅为~400ms。 当然、这可以进行优化。

    请检查您是否 能够 以满足需求的足够速度从"Read Block"命令接收数据。

    此致、

    Helfried    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Helfried

    感谢您的回复、

    (__LW_AT__)1 μ s 第一个问题:设置一个连续采样为40ms 的 ADC。  

    以下是我的建筑物在 ROM 固件 SD14寄存器中进行~40ms 采样:

    void SetupSD14 (unsigned char channel)
    {
    //设置:要采样的通道、可编程放大器增益(1x)、CIC 滤波器和 CIC 提取率为32、INTDLY 为0以实现~40ms 采样
    SD14CTL1 = SD14GAIN_0 + SD14FILT_CIC + SD14RATE__CIC32 + SD14INTDLY_0 +通道; 
    
    //来自 ACLK 的时钟(来自 VLO 时钟的64kHz)、SD14DIV1设置为32倍分频(SD14需要2kHz 的时钟)、
    SD14CTL0 = SD14IE + SD14SGL + SD14DIV1; // 2kHz 采样率、ACLK 源、SVSS 接地(.125V)、中断使能
    
    SD14CTL0 |= SD14EN; //启用 SD14模块,
    SD14CTL0 |= SD14SC; //开始转换
    } 

    正如我写的 、我已经使用 SD14SGL 进行单次转换。  据我所知、每次采样后都会自动产生 SD14中断、因此 我配置了以下中断功能  来获取采样值。

    #pragma vector=SD_ADC_Vector
    中断 void SD14_ADC (void)
    {
    switch (__evo_in_range (SD14IV、4))//SD14IV 寄存器状态:00h-无中断挂起;02h-SD14MEM 溢出(SD14OVIFG);04h-SD14DIV 新结果(SD14IFG)
    / SD14DIV
    
    
    
    ~
    
    
    中断= SD14SDL14或 SD14SDLIFG;无 SD14SDLIFG / SD14SDR_中断= 0;无 SD14OV_中断/ SD14SD14OV_中断= SD14SD14SDLIFG / SD14OV/ SD14SD14SDIF0;无 SD14SD14SDR_中断=中断/ SD14SD14OV_/ SD14SD14SDLIFG ~; //清除数据可用中断
    示例 Buffer[0]= SD14MEM0;
    }
    } 

    由于我认为中断是自动生成的,所以我将 setup SetupSD14()函数放在主程序的 while 循环中,以执行连续采样

    void main()
    {
    WDTCTL = WDTPW + WDTHOLD;
    DS = 1;
    ASM ("调用#0x5CDA ");
    asm ("调用#0x5CAC ");
    
    initISO15693 (clear_block_locks);
    DeviceInit();
    
    while (1)
    {
    SetupSD14 (ADC0_CHANNEL);
    _bis_SR_register (LPM3_bits + GIE);
    
    }
    _no_operation ();
    } 

    因此、我对 设置40ms 连续采样的 ADC 有疑问。 :

    •     当我构建 ROM 固件时、 能否实现连续采样?  
    •     我采样的数据是否可以通过 RF13模块实时传输、SD14模块如何与 RF13模块接触

    我对 rf430frl152h 的使用非常了解,非常希望得到你的答复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    您有哪些可用硬件? 根据我的理解、您将获得具有 EXP430G2553的 TRF7970ABP。 您是否还拥有用于 RF430FRL152HEVM 的 GUI、也可能还有 EVM 本身。

    借助 GUI、您无需编写任何代码即可完成所有寄存器设置。 控制 ROM 固件的所有寄存器都可以通过读取器的"写入块"命令进行设置。

    只需从示例项目中将"默认项目"加载到 RF430FRL152H、然后使用 GUI。

    https://www.ti.com/lit/zip/slac691f

    以下是 我的设置的屏幕截图:

    希望这有所帮助、

    此致、

    Helfried  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

         我认为这对我很有帮助、但我仍然想创建自己的 GUI 来显示 ADC0的数据、我 不知道如何使用上面的官方 GUI 来实时显示数据。

         我能不能理解我可以通过 PC 串行端口向 EXP430G2553 + TRF7970ABP 发送指令、然后 EXP430G2553 + TRF7970ABP 可以使用 ISO15693向 RF430FRL152HEVM 发送"写入块"命令、 然后、可以在~ 40ms 的采样频率下实现无限采样。我只需要读取 PC 串行端口接收到的数据。

         如果我理解正确、那么我认为我知道如何编写我自己的 GUI。

    此致、

    张感豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    从未尝试过、但我认为这应该是可能的。 我的主要问题 是、使用 PC 可能很难实时读取采样数据。

    ISO15693命令"读取块"为~5ms、与 MSP430的通信为9600波特并且 PC 不是一个实时系统。

    如果您不需要连续采样、您可以使用每40ms 采集的样本来填充存储器、然后读出数据。

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    再次感谢您、我准备好了。 我会尝试。

    此致、

    张感豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    我对存储的样本存储器有问题。 我 注意到您将其设置为1、 我想知道您为什么这么做。

    我已经通过串联端口将命令发送到 rf430frl152h、但我没有成功。 您已经提到、您可以使用每40ms 采集的样本来填充存储器、然后读出数据。 您 能告诉我具体的方法吗? 非常感谢:

    Command1 ='0108000304FF0000';
    命令2 ='0109000304F0000000';
    命令3 ='0109000304F1FF0000';
    命令4 ='010C00030410002101020000';
    
    %% ADC0 (~40ms)settings
    命令5 ='01130003041802210000000:
    
    01000002,0100000002(0100000002)0100000002::~
    :;;0800000001000001000002?
    ????? 

    此致、

    张感豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    我已将"Stored Samples Memory"设置为1、因为我假设您希望采样数据@ 25Hz 并希望将其读出为"live"。

    因此、我将存储器设置为1、使读取器始终可以从相同的块编号读取样本数据。

    当设置为较高的值时、此存储器区域将填充数据、并使用新值循环覆盖。

    在 GUI 中设置的默认存储器大小为504个样本等于1008字节的存储器、块编号为9至135。 这大约是25 Hz 时20秒的采样数据。 可以随时读取此数据。 当您停止采样过程时、"采样缓冲器索引"会显示最后一个采样存储在此循环缓冲器中的位置。

    希望这会有所帮助。

    此致、

    Helfried  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    很抱歉我错误地表达了我的目的。 我的理想实时状态是数据可以在 PC GUI 上持续显示。 如果我仍然将"Stored  Samples Memory"设置为1 、这意味着每次通过串行端口对数据进行采样时、我都需要"读取"。 如前所述  、ISO15693命令 "读取块"为~5ms、单次采样的成本为~40ms。  我是否需要将"Custom Time"设置为50ms、以确保我 通过串联端口完成"Read block#9"的操作、然后开始下一次采样。

    我之所以有这样的疑问、是因为我通过发送指令来设置寄存器、然后无法在 PC 上读取 ADC0的实时数据。  如果我想一次读取多个数据块、应该如何修改这条指令?  命令9 ='010B000304180220090000'

    非常感谢~

    此致、

    张感豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    没有命令可让您使用一个命令读取更多块。 唯一的命令是"读取多个块"、但这样做没有太大帮助、因为 一次最多只能读取两个8字节块。

    由于向读取器发送"Read Block"命令然后等待响应将需要很长时间才能用于您的应用程序、因此您必须修改读取器固件。 当读取器每50ms 自主发送一次"Read Block"命令、并通过串行端口连续将数据发送回 PC 时、PC 只需收集数据。 如果 MSP430F2553速度不够快、您可以将软件移植到 MSP430F5529 Launchpad、并对串行连接使用更高的波特率。  考虑将更多"智能"转移到读取器端、即设置 RF430FRL152H 的寄存器、以加快速度。 这有助于实现您的速度目标。

    此致、

    Helfried   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    我使用了官方 GUI 并将寄存器设置为~40ms 采样、同时打开了串行端口监视器。 我 发现从发送命令到接收 BLOCK9数据大约需要~ 80ms。 波特率为115200、这意味着没有改进的空间。 (__LW_AT__串行端口监视器,如图1)所示

    根据您的建议、我们需要将读取器 Launchpad 从 MSP430F2553更改为 MSP430F5529。 或设置 RF430FRL152H 的寄存器。  

    由于 研究  和开发 成本以及我自己的技能 水平、 我对您 关于设置 RF430FRL152H 寄存器的建议非常感兴趣。 那么 、您能否告诉我具体的方法或想法。 谢谢~

    此致、

    张感豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Senhao、

    主要思路是在读取器固件中实现一个新命令、指示读取器每50ms 发送一次"Read Block"命令、并将响应发送到串行端口。 这将节省时间 、因为 PC 不必 首先向读取器发送命令、只需收集测量数据。

    此致、

    Helfried  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Helfried,

    听起来不错、我将尽力在读取器固件~中实现一个新命令

    谢谢!

    此致、

    Senhao