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.

[参考译文] DLP-7970ABP:合适的 MSP430板、NFC 对等。

Guru**** 2594640 points
Other Parts Discussed in Thread: CC2650, MSP430F5529, TRF7970A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/578391/dlp-7970abp-the-proper-msp430-board-to-nfc-peer-to-peer

器件型号:DLP-7970ABP
主题中讨论的其他器件:CC2650MSP430F5529TRF7970A

你好!

我决定使用 MSP430,而不是将示例移植到 cc2650。 我的问题是、对于 NFC 对等设备而言、哪一个 MSP430板是合适的、以及是否有任何示例项目(GUI 除外)。

我想通过 UART 将信息从 MSP430发送到 cc2650。

此致、

Mayer Tamás

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

    您好、拜耳、

    对于 NFC 对等模式、请参阅以下应用手册: http://www.ti.com/lit/pdf/sloa192

    并订购此硬件包: store.ti.com/nfclink-bndl.aspx

    此应用手册包括一个软件下载、可与上面的 LaunchPad+BoosterPack 组合配合使用以启用 NFC 对等模式。 您只需编写 UART 接口、即可在 CC2650和 MSP430之间交换数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好! 我已经开始使用 F5529LP_TRF7970A_All_NFC_modes 项目(sloa192)、它运行正常。 现在、我尝试根据 MSP430F5529的 UART 回显示例来弹劾 UART 接口。 这是正确的方式、还是有更好的机会?

    此致

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

    这并不是 NFC 问题、因此我建议您在 MSP430论坛上发帖、如果您对要使用的示例有任何疑问、请询问他们如何使用 UART 从 P2P 缓冲区等缓冲区传递数据?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,拉尔夫!

    UART 正在工作、现在我必须找到合适的位置以通过 P2P 缓冲区发送信息。 我想在传输就绪时复制 P2P 缓冲区数据。 主程序中的正确位置在哪里,我可以在哪里复制和发送数据?
    我想、数据可能会出现在 g_ui8SerialBuffer 中、也可能出现在 g_ui8TxBuffer 中、我不知道。
    缓冲器的哪个部分包含传输的字符串?

    此致、

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

    请查看我们的对等应用手册 www.ti.com/lit/pdf/sloa192的第7.2.3和7.2.4节
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raplh、

    我已经检查了7.2.3和7.2.4,我找到了收货地点,但在文档中没有描述,即 Rx 缓冲区。

    首先、我尝试了以下代码:

    if ((uint16_t) sP2PRxStatus.ui32PacketSize = ui16BytesReceivedt)
    {
    //重置接收的字节
    for (ITER=6;<ui16BytesReceived-5;iter++)
    {
    G_ui8UARTBuffer[ITER]=g_ui8SerialBuffer[ITER];
    }
    bcUartSend (g_ui8UARTBuffer、ui16BytesReceived-11);
    ui16BytesReceived=0;
    
    } 

    但这样我将写入我要传输的数据,而不是接收到的数据。
    当收到喂料器时、会调用此函数、以便时序正常。
    我想可能我必须从 uint8_t g_ui8TxBuffer[256]写入数据、或者在某种情况下存在 Rx 缓冲器、我不知道。
    我还读了所有的评论,但我不能弄清楚。

    此致、

    Mayer Tamás





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

    您好、拜耳、

    您将需要像以前一样、在 if 语句之外打印数据。

    使用我们的 USB GUI 的 TI 示例执行以下操作:

    sP2PRxStatus = NFC_p2_getReceiveState ();
    if (sP2PRxStatus.sDataReceivedStatus!= Received_no_s碎片)
    {
    
    if (ui16BytesWordReceived=0x00)
    {
    // Send NReceivedTotal Size
    Serial_ReceivedBuffer (((char *)&sP2PRxStatus.ui32BytesReceivedt)*;p2p2p2pet_DataBytudetr_DataSize
    
    
    (p2p2p2p2pud_ReceivedBytudet_Data_Out_Outputs);
    
    pudetr_Outputr_Outputr_Outputs (uedBytature_Outputs);p2petr_Outputr_Outputr_Outputs (pud_Outputs)
    
    
    
    ;p2petr_Data_Outputr_Outputs (pud_Output_Data_Output_Data_Output_Output_Output_Output_Output_Output_Outputs)
    
    //如果
    ((uint16_t) sP2PRxStatus.ui32PacketSize = ui16BytesReceivedt)
    {
    //重置接收
    到的字节 ui16BytesReceived=0;
    }
    ,请检查最后一个数据包是否完全接收 

    因此、您需要在计算 ui16BytesReceiv接收 器之后、在检查最后一个数据包是否已完全接收之前发送数据。

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

    你好,拉尔夫!

     我已经尝试过 IF、但目标 的 g_ui8SerialBuffer 不包含初始方的数据。

    现在我正在尝试使用此代码,但我不能正常工作。请告诉我哪个缓冲区或变量包含来自 initator 的当前数据。

    代码:

    #if (NFC_peer_2_peer_initiator 启用|| NFC_peer_2_peer_target_enabled)
    NFC_P2P_LED_Poout |= NFC_P2P_LED_BIT;
    
    //
    读取接收状态结构-检查是否有从目标接收到的数据包
    //
    sP2PRxStatus = NFC_total_getState= 0xp2p2p2p2&sx
    接收到的
    
    
    
    
    
    数据包(sx 接收状态);(如果是0xp2p2p2p2p2p2p2p2p2p2&sx 接收到的数据包大小);//接收到的
    2)=接收到的数据包大小= 1 (2)(2)(2)/p2p2p2p2p2p2p2p2p2p2p2p2p2p2p2p2pF (1);//接收到1);//接收到1 (2);//接收到1
    
    
    
    ui16BytesReceived=sP2PRxStatus.ui16DataReceivedLength + ui16BytesReceived;convertWordToAscii(ui16ByReceivedstring,(uint8_t
    
    *)pcByReceivedString;
    
    Serial_printBuffer(char *)sP2PRxStatus.pui8Rx6_t *)
    
    
    ;p2p2p2p2bReceivedString (r_Data_Data_Data+r&diftes6*r&dual_dual_dual_diftes&d&dual_divature_dual_dual_dual_dual_divaturtes&divaturtes&d&r&dual_d&r&dual_dual_divaturtes&
    
    #endif
    
    //如果
    ((uint16_t) sP2PRxStatus.ui32PacketSize = ui16BytesReceivedt)
    {
    //重置接收的字节,请检查最后一个数据包是否已完全接收
    
    ui16字节接收器= 0;
    
    }
    }
    

    此致、

    Mayer Tamás

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

    您好、拜耳、

    正确,数据不在 g_ui8SerialBuffer 中。

    数据包含在 NFC 堆栈内的缓冲区中、并且可通过一个指针在 main.c 中访问该数据、该指针将该缓冲区链接到 main.c 层。 该指针为:sP2PRxStatus.pui8RxDataPtr

    您只能通过该指针访问数据、并且通过以下函数为指针提供了正确的缓冲区位置:

    sP2PRxStatus = NFC_p2p_getReceiveState();

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

    感谢您的快速回答和大量帮助。 最后,整个过程都在工作。

    此致、

    Mayer Tamás