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/CC3220SF-LAUNCHXL:在基于 CC3220SF 的定制板上读取 UART

Guru**** 2551110 points
Other Parts Discussed in Thread: CC3220MOD, CC3220SF-LAUNCHXL, CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/764985/ccs-cc3220sf-launchxl-uart-read-on-a-cc3220sf-based-custom-board

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他部件:CC3220MODCC3220SF

工具/软件:Code Composer Studio

您好!

我有一个基于 CC3220MODSF 的定制电路板。  

我正在尝试使用 UART 从我的计算机读取/写入数据。  

我可以从板写入计算机-它工作正常、但无法从板读取到计算机。  

我已经用示波器检查了到达电路板上处理器的信号、它看起来很好。  

我尝试使用阻止读取、使用回调函数读取以及读取 Polling、但没有任何作用:读取永远不会返回。  

我曾尝试逐个发送唯一的包、并发送连续数据、但仍然相同。  

是否有任何人可以"每次"使用简单 UART 读取的示例代码?  

我正在使用 UART_echo 示例的代码、这里是我使用的 UART 配置:  

UART_PARAMS_INIT (uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudrate = 115200;
uartParams.stopbits = UART_STOP_ONE;
uartParams.parityType = UART_PAR_NONE;
uartParams.dataLength = UART_LEN_8;
//uartParams.readMode = UART_MODE_CALLBOACK;//用于通过回调进行的测试  
//uartParams.readCallback = myCallBack;

如果有任何帮助、我们将不胜感激!

提前感谢:)

Kateline  

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

    1.您是单独使用 uartecho 还是与其他代码一起使用? 如果您使用的是其他演示中的 InitTerm(),则该函数会出于低功耗原因禁用 RX 功能。 请确保您未将其与默认 Board_UART0配合使用。
    2.您使用的是 UART0还是 UART1? 您将哪个引脚用于 UART RX?
    3.您是否正在使用 TeraTerm 等串行终端? 您可以使用默认 uartecho 示例尝试此操作吗?
    4.调用 UART_open()时是否看到任何错误?

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

    您好、Sarah、非常感谢您的回答。  

    1.我单独使用 uartecho,代码中没有 InitTerm()。  

    2.我正在使用 UART1 (UART0实际上用于与 XDS110一起调试)。 我将 GPIO04 (CC3220MOD 上的引脚49)用于 RX。  

    3.我真的不知道你想要我做什么(抱歉)  

    4.我在 UART_Open()没有看到任何错误(我得到一个有效的句柄,因为我可以在 UART (?)上执行写操作)  

    此致、

    Kateline  

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

    您好!

    我已经使用我拥有的 CC3220SF-LAUNCHXL 对代码进行了测试、并获得了相同的结果。

    因此、这必须是软件、但我真的很困惑我的错误...

    幸运地找到它可能是什么?

    提前感谢、

    Kateline

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

    更新:

    我尝试使用另一个 GPIO 引脚作为 UART1_RX。

    我使用了 GPIO08、它也在我的定制板上工作。

    因此、我认为我尝试使用的 GPIO04配置不正确(用作 UART)。

    因此、我的问题是:如何正确更改引脚的配置?

    我尝试简单地将 GPIO04更改为输出、并将0和1更改为输出、但它不起作用。

    除了使用"GPIO_SetConfig()"之外、还有其他需要做的事情吗?

    再次感谢、

    Kateline

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

    您好 Kateline、

    在 CC3220SF-LAUNCHXL 上为您的测试添加注释。 您是否修改了 LaunchPad 的硬件? 默认情况下、引脚 GPIO_04连接到电压跟随器、如果 LaunchPad 未进行硬件修改、则不能用作数字 I/O

    如何使用模块获得更多电路板? 您可能会遇到电路板问题(制造或设计问题)。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jan、感谢您的回答。
    我更改了 launchpad 上的电阻器、以使用"直接连接"代替电压跟随器、但结果相同。
    在我的电路板上、GPIO04直接连接到 Rx 信号。
    我现在(在 launchpad 和我的定制板上)将 GPIO08用作 UART1的 RX 引脚、它的工作方式非常完美。
    我在最后更改我的设计不是问题、但我认为这意味着 GPIO04配置不是很好(我的最后一篇文章是 CFR)。 我对此进行了测试、无法在简单的输出配置(在 launchpad 或我的板上)中设置 GPIO04。 因此、我认为 GPIO 引脚的配置可能有问题或缺失。
    然后、我想知道"步骤"是什么?要在项目中修改哪些文件以正确配置 GPIO 引脚?
    文件 CC3220SF_LaucnXL.c/.h 中是否有要做的事情?
    再次感谢、
    Kateline
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kateline、

    您能描述一下您在 LaunchPad 上所做的所有更改吗? 进行以下更改后,您应该执行... 组装 R109、拆除 C56、拆除 R111、拆除 R113。

    -引脚 PIN_59 (=GPIO04)看起来是配置为 ADC 通道的默认文件。 您应该删除此配置。
    -您是否在代码 ADC 内部使用(这意味着您调用 ADC_init())? 在调用 ADC 初始化之后、引脚复用为 ADC。
    -要正确生成 Fiel野 CC3220SF_LaucnXL.c/.h、您可以使用 www.ti.com/.../PINMUXTOOL

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我只删除了 R111并填充了 R109、我也会执行其他操作、我会告诉您。
    -如何“删除”配置?
    -我不使用 ADC
    -我将检查链接
    再次感谢您的帮助、
    Kateline
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kateline、

    请检查 Pinmux 工具。 我认为它可以让您了解如何配置 TI 驱动程序。

    我个人并不是 TI 驱动程序的忠实粉丝。 我使用 driverlib 来控制外设。 它允许对硬件进行更低级别的访问。 对于与 TI 驱动程序相关的问题、最好等待 TI 应用团队的 Sarah 回答。

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jan、
    感谢 PinMux 工具的链接、它太棒了!
    我现在清楚地看到该怎么办,再次感谢!
    Kateline
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我又来了...

    因此、PinMux 有助于配置 GPIO 引脚、但我仍然无法进行简单的 GPIO 切换...

    回到 Launchpad 上、我使用 GPIO28 (引脚18)。 板上有两个名为 P18的引脚、我使用旁边没有起始值的引脚(默认情况下、该引脚上组装了电阻器)。

    我已经将 GPIO28设置为"输出"。 但第一个问题、我需要将什么设置为停车? 它是否会为输出更改某些内容? (我已经设置了一个下拉电阻器)。

    在我的代码中、我只需执行以下操作:

    GPIOInit();

     GPIO_WRITE (28、1)

    我运行此代码位、然后更改为 GPIO_WRITE (28、0)

    我会跟随调试器。 我在引脚上设置了示波器、但看不到信号移动(它保持为0)。

    我该怎么做?

    感谢您的任何帮助、

    Kateline

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他信息:
    为了能够将 GPIO 用作输出/输入、您需要:
    1.在 PinMux 中设置正确的配置
    2.还请检查.h 文件(在我的示例中为 CC3220SF_LAUNCHPAD.h)、在 typedef enum CC3220SF_LAUNCHXL_GPIOName 中、每个 GPIO 都有一行要使用。 每一行都是软件中 GPIO 的名称。 名称的设置顺序必须与.c 文件中 GPIO_PinConfig gpioPinConfigs[]的设置顺序相同。
    因此、如果您有:
    GPIO_PinConfig gpioPinConfigs[]={
    /*带有回调的输出引脚*/
    GPIOCC32XX_GPIO_28 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    GPIOCC32XX_GPIO_09 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    };在.c 文件中-您需要:
    typedef 枚举 CC3220SF_LAUNCHXL_GPIOName{
    GPIO_output_1 = 0、
    GPIO_LED_D10、
    CC3220SF_LAUNCHXL_GPIOCOUNT
    }CC3220SF_LAUNCHXL_GPIOName;位于.h 文件中

    现在、我的所有问题都得到了解决!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kateline、

    您可以在此处提供 CC3220SF_LAUNCHXL.h/.c 文件吗?

    但请注意,函数 GPIO_write()的第一个参数是 GPIO 配置的索引,而不是 GPIO 编号。

    1月