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/CC3200:UART1通信问题

Guru**** 1989765 points
Other Parts Discussed in Thread: CC3200, UNIFLASH, ISOW7841
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/943813/ccs-cc3200-uart1-communication-problem

器件型号:CC3200
主题中讨论的其他器件: UNIFLASHISOW7841

工具/软件:Code Composer Studio

您好!

我使用 CC3200设计了定制器件。  

- 使用 Uniflash 加载 servicepack_1.0.1.14-2.12.2.8.bin。

引脚多路复用.c

#include "pinmux.h"
#include "hw_types.h"
#include "hw_memmap.h"
#include "hw_gpio.h"
#include "pin.h"
#include "rom_map.h"

#include "prcm.h"


//*********
void
PinMuxConfig (void)
{
//
//将未使用的引脚设置为 PIN_MODE_0、JTAG 引脚16、17、19、20除外
//

//
//启用外设时钟
//
MAP_PRCMPeripheralClkEnable (PRCM_GPIOA0、PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable (PRCM_GPIOA1、PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable (PRCM_GPIOA3、PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable (PRCM_UARTA0、PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable (PRCM_UARTA1、PRCM_RUN_MODE_CLK);

//
//为 GPIO 输出配置 PIN_50
//
MAP_PinTypeGPIO (PIN_50、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA0_BASE、0x1、GPIO_DIR_MODE_OUT);

//
//为 GPIO 输出配置 PIN_64
//
MAP_PinTypeGPIO (PIN_64、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA1_base、0x2、GPIO_DIR_MODE_OUT);

//
//为 GPIO 输出配置 PIN_03
//
MAP_PinTypeGPIO (PIN_03、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA1_base、0x10、GPIO_DIR_MODE_OUT);

//
//为 GPIO 输出配置 PIN_04
//
MAP_PinTypeGPIO (PIN_04、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA1_base、0x20、GPIO_DIR_MODE_OUT);

//
//为 GPIO 输入配置 PIN_18
//
MAP_PinTypeGPIO (PIN_18、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA3_base、0x10、GPIO_DIR_MODE_IN);

//
//为 GPIO 输出配置 PIN_53
//
MAP_PinTypeGPIO (PIN_53、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA3_base、0x40、GPIO_DIR_MODE_OUT);

//
//为 GPIO 输出配置 PIN_45
//
MAP_PinTypeGPIO (PIN_45、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA3_base、0x80、GPIO_DIR_MODE_OUT);

//
//为 UART0 UART0_TX 配置 PIN_55
//
MAP_PinTypeUART (PIN_55、PIN_MODE_3);

//
//为 UART0 UART0_RX 配置 PIN_57
//
MAP_PinTypeUART (PIN_57、PIN_MODE_3);

/*//如果下面激活了 TX 和 RX 引脚配置线路,则 TX 引脚(GPIO_10)上没有数据。
//为 UART1 UART1_TX 配置 PIN_01
//
MAP_PinTypeUART (PIN_01、PIN_MODE_7);

//
//为 UART1 UART1_RX 配置 PIN_02
//
MAP_PinTypeUART (PIN_02、PIN_MODE_7);*/

//如果下面激活了 TX 和 RX 引脚配置行,则 TX 引脚(GPIO_03)上有数据。
//
//为 UART1 UART1_TX 配置 PIN_58
//
MAP_PinTypeUART (PIN_58、PIN_MODE_6);

//
//为 UART1 UART1_RX 配置 PIN_59
//
MAP_PinTypeUART (PIN_59、PIN_MODE_6);


} 

UART_IF.c 的一部分

//
//全局变量指示命令存在
//*********
静态无符号长整型__Errorlog;

//*************
//指示输入长度的全局变量
//*********
unsigned int ilen=1;

#define UART1_BAUD_RATE 115200
#define SYSCLK1 8000000
#define CONSOLE1 UARTA1_BASE
#define CONSOLE1_PERIPh PRCM_UARTA1


//*********
//
//! 初始化
//!
//! 此函数
//! 配置要使用的 UART。
//!
//! 返回无
//
////*********
void
InitTerm ()
{
#ifndef NOTERM

MAP_UARTConfigSetExpClk (console、map_PRCMPeripheralClockGet (console_Periph)、
UART_BAUD_RATE、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE);

MAP_UARTConfigSetExpClk (UARTA1_BASE、MAP_PRCMPeripheralClockGet (PRCM_UARTA1)、
UART_BAUD_RATE、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE);


#endif

__Errorlog = 0;


} 

main.c 的一部分

void
Message1 (const char * str)
{
GPIO_IF_SET (COM_LED、mycom_led_port、mycom_led_pin、1);
UART_PRINT ("\r\n.Message1调用:\r\n");
#ifndef NOTERM
if (str!= NULL)
{
while (*str!='0')
{
MAP_UARTCharPut (UARTA1_base、* str++);
//map_UARTCharPut (UARTA1_base、* str++);
UART_PRINT ("X");
}
}

#endif
}


void LEDBlinkyRoutine()
{
//
//最初切换线路以关闭 LED。
//驱动的值是 LP 上的 LED 所需的值。
//

while (1)
{

Message1 ("ppppppppppp");

Message1 ("pppppppAAAAAAAA");


GPIO_if_set (run_LED、my_led_port、my_led_pin、1);
MAP_UtilsDelay (1000000);
GPIO_if_set (run_LED、my_led_port、my_led_pin、0);
map_UtilsDelay (1000000);


}

} 

当我在 pinmux.c 中激活以下行时、UART1 TX 引脚上没有数据:

//为 UART1 UART1_TX 配置 PIN_01
//
MAP_PinTypeUART (PIN_01、PIN_MODE_7);

//
//为 UART1 UART1_RX 配置 PIN_02
//
MAP_PinTypeUART (PIN_02、PIN_MODE_7); 

但是、当我激活下面的线路时、在 pinmux.c 中、UART1 TX 引脚上有数据:

//
//为 UART1 UART1_TX 配置 PIN_58
//
MAP_PinTypeUART (PIN_58、PIN_MODE_6);

//
//为 UART1 UART1_RX 配置 PIN_59
//
MAP_PinTypeUART (PIN_59、PIN_MODE_6); 

您能帮我配置 PIN_58和 PIN_59吗?

此致、

Onur

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

    您好、Onur、

    您的帖子显示您在引脚58上看到 TX 数据、而在引脚1上看不到数据、但您的最后一个问题询问了为何无法配置引脚59。 这个问题是否应该翻转?

    您是否正在使用 LaunchPad? 假设您的问题实际上与引脚1有关、则该引脚默认连接到 LaunchPad 上的 I2C 传感器。 您可以尝试移除 J2和 J3跳线吗?

    此致、

    Sarah

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

    您好 Sarah、

    是的、抱歉。 最后一个问题应该是"您能帮我为什么不能为 TX 配置 PIN_1吗?"。

    我没有使用 Launchpad。 这是我的定制板。 和 GPIO_10 (PIN_01)连接到 ISOW7841的 OUTD 引脚(6)。

    你有什么想法吗?

    此致、

    Onur。

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

    您好、Onur、

    您在引脚58上有什么类似的东西吗? 您能否共享原理图?

    此致、

    Sarah

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

    您好、Sarah、

    我正在使用 CC3200模块。 下面是我的原理图:

    我将导线焊接到 GPIO_03和 GND、并将这些导线连接到逻辑分析仪。 我看到了方波! 之后、我将 GPIO_03和 GND 线连接到 USB/UART TTL 转换器。 我看到 CC3200在控制台上打印数据!

    但我不明白我能够在 pinmux 工具上为 UART1 TX 选择 GPIO_10、但没有输出。

    你有什么想法吗?

    此致、

    Onur

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

    我找到了问题。 这是一个简单的错误。 我将 UART_TX 连接到 ISOW7841的输出引脚而非输入引脚。  

    感谢您花时间观看 Sarah。