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.

[参考译文] TMDSCNCD280025C:使用 SCI 显示变量

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1320391/tmdscncd280025c-displaying-variables-using-sci

器件型号:TMDSCNCD280025C

您好!

我想实施基本的 UART。
这是我编写的程序。 我专注于如何通过使用%d、%s 等来显示不同变量的值。
在下面的程序中、我打印了一个基本字符串。

//
//包含的文件
//
#include "driverlib.h"
#include "device.h"
#include "board.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

//
//全局变量
//
uint16_t loopCount;
uint16_t errorCount;

//
//函数原型
//
void error();
空 uart (char[]、int);

//
//主菜单
//
空 main (void)
{
char send[256]="Hello Everyone!\n";

//
//初始化设备时钟和外设
//
device_init();

//
//通过禁用引脚锁定和启用上拉来设置 GPIO
//
device_initGPIO();

//
//初始化 PIE 和清除 PIE 寄存器。 禁用 CPU 中断。
//
interrupt_initModule();

//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//
interrupt_initVectorTable();

//
//板初始化
//
Board_init();

//
//启用 CPU 中断
//
Interrupt_enableGlobal();


//
//发送一个以0开始的字符
//
// sendChar = 0;

//
//从0x00开始一直发送字符并经过0xFF。
//发送每个字节后,检查接收缓冲区中是否存在 cSCIorrect 值。
//
for (;;)
{
UART (send、sizeof (send));

void UART (字符名称[]、int A)
{

uint16_t sendChar;
uint16_t receivedChar;
uint8_t i;
标记每个;

for (i = 0;i<a;i++)
{
每个=名称[i];
sendChar =(uint16_t) each;

SCI_writeCharNonBlocking (mySCI0_BASE、sendChar);

//
//等待 RRDY/RXFFST = 1,FIFO 中有1个数据可用
//
while (SCI_getRxFIFOStatus (mySCI0_BASE)= SCI_FIFO_RX0)
{

//
//检查接收的字符
//
receivedChar = SCI_readCharBlockingFIFO (mySCI0_BASE);

//
//接收到的字符不正确
//
if (receivedChar!= sendChar)
{
asm (" ESTOP0");//在此处取消注释以停止测试
用于(;;);


//
//文件结尾
//

输出:

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

    您好!

    您不需要在 SCI 配置中使用%d、%s。 每个数字都被视为一个字符、您可以发送您用来发送"Hello Everyone!"的方式 符。 你在这样做时是否面临任何困难?

    阿迪亚

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

    感谢您的答复。 假设有一个整数变量 count。

    uint16_t count=10;

    如何定义字符数组 send[],使输出为"count 的值为10"。 我要将这个数组发送到函数"UART"。

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

    Pranoti、您好!

    您可以计算要发送的数据值的数量、并相应地发送数据、如以下代码片段中所述:

        msg = "\r\n\n\nHello World!\0";
        SCI_writeCharArray(SCIA_BASE, (uint16_t*)msg, 17);

    在有关发送号码的查询中、您可以查看示例- sci_ex3_echoback

    数字的处理方式与字符相同。

    谢谢。

    阿迪亚