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/TM4C123GH6PM:如何针对连接的 TF MINI PLUS (只能使用 UART 接口)和 Tiva C 系列(123GXL & Amp;1294NCPDT)进行编程

Guru**** 2537140 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/837922/ccs-tm4c123gh6pm-how-to-program-for-interfaced-tf-mini-plus-only-uart-interface-possible-and-tiva-c-series-123gxl-1294ncpdt

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:EK-TM4C123GXL

工具/软件:Code Composer Studio

您好!

 我购买了 TF mini PLUS、它仅支持 UART、并且支持 Arduino。 他们在线提供了 Arduino 和 TF mini-plus 之间的通信代码。   我的问题是如何访问 UART[0]、UART[1]…… UART[9]使用 CCS 代码在 Tiva C 系列中的单个元素。 在 Tiva 的工作簿中、只提到 UARTCharPut 和 UARTCharGet。

>下面是 Arduino 的代码,请将其保留为参考,以帮助我,如何为 Tiva C 系列和 TF mini plus 编写代码

int dist;
内部强度;
浮动温度;
内部检查;
int i;
int UART[9];
const int header=0x59;

if (Serial1.available ()){//检查串行端口是否具有数据输入
if (Serial1.read()==标头){//assess data package frame header 0x59
UART[0]=标头;
if (Serial1.read()==标头){//assess data package frame header 0x59
UART[1]=标头;
对于(i = 2;i < 9;i++){//将数据保存在数组中
UART[i]= Serial1.read();

CHECK = UART[0]+ UART[1]+ UART[2]+ UART[3]+ UART[4]+ UART[5]+ UART[6]+ UART[7];
if (UART[8]=(check & 0xff)){//根据协议验证接收到的数据
DIST = UART[2]+ UART[3]* 256;//计算距离值
强度= UART[4]+ UART[5]* 256;//计算信号强度值
tempature = UART[6]+ UART[7]* 256;//计算芯片温度
tempature = tempature /8 - 256;
serial.print ("dist =");
serial.print (dist);//输出测量激光雷达的距离值
serial.print ('\t');
serial.print ("strength =");
serial.print (strength);//输出

谢谢你。

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

    UART[0]至 UART[8]只是在代码示例顶部声明的9整数数数数组。 它们在 for 循环中初始化,并调用 Serial1.read()。 您的问题应该是如何执行 Serial1.Read()、Serial1.Available ()和 Serial.print()的功能。 如果 您尚未下载 TivaWare 库、请进行下载。 请查看文档文件: C:\ti\TivaWare_C_Series-2.1.4.178\docs\SW-TM4C-DRL-UP-2.1.4.178.pdf。 第30章描述了 UART 功能。 您还需要配置 UART 引脚和波特率。 我建议您查看示例程序:hello.c、位于 C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\hello

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

    您好、Bob、
    感谢您按照建议回复。 我研究并修改了下面的代码、但仍在串行监视器上、我只能看到 TF mini plus 的数据格式   

    请参阅此页= https://acroname.com/sites/default/files/assets/sj-pm-tfmini_plus_a04_product_mannual_en.pdf (第12页)

    int main (void){

    SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);
    SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
    GPIOPinConfigure (GPIO_PA0_U0RX);
    GPIOPinConfigure (GPIO_PA1_U0TX);
    GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);

    UARTConfigSetExpClk (UART0_BASE、SysCtlClockGet ()、115200、
    (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE);

    while (1)

    IF (UARTCharsAvail)

    if (UARTCharGet (UART0_BASE)=标头){
    UART[0]=标头;
    if (UARTCharGet (UART0_BASE)=标头){//评估数据包帧头0x59
    UART[1]=标头;
    对于(i = 2;i < 9;i++){//将数据保存在数组中
    UART[i]= UARTCharGet (UART0_BASE);

    CHECK = UART[0]+ UART[1]+ UART[2]+ UART[3]+ UART[4]+ UART[5]+ UART[6]+ UART[7];
    if (UART[8]=(check & 0xff)){//根据协议验证接收到的数据
    DIST = UART[2]+ UART[3];//计算距离值
    强度= UART[4]+ UART[5];//计算信号强度值
    UARTprintf ("dist =");
    UARTprintf (dist);//输出测量激光雷达的距离值
    UARTprintf ('\t');
    UARTprintf ("strength =");
    UARTprintf (strength);//输出

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

    要使用函数 UARTPrintf(),您需要调用 UARTStdioConfig(),如 hello.c 示例所示。 有关 UARTStdio 函数的文档、请参阅 :C:\ti\TivaWare_C_Series-2.1.4.178\docs\SW-TM4C-UTILS-UG-2.1.4.178.pdf 的第20章