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/AFE4490SPO2EVM:AFE 4490 EVM 通过 USB 和 Putty 将数据发送到 PC、但无法正常工作。 谢谢!

Guru**** 2558250 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/635932/ccs-afe4490spo2evm-afe-4490-evm-sends-data-to-pc-via-usb-and-putty-not-working-thanks

器件型号:AFE4490SPO2EVM

工具/软件:Code Composer Studio

尊敬的 TI 专家:

我使用 AFE 4490 EVM 板通过 USB 将数据发送到 PC。 由于我们希望使用自定义 GUI、我们需要首先调试 USB 通信。

但是、当我让 EVM 发送一些简单的字节时、PC 上的 PUTYY 无法获取任何读取。  

请找到以下代码和帮助。 谢谢!  推杆

void main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器

init_Ports(); //Init 端口(执行第一个端口、因为时钟会更改端口)
SetVCore (3);
Init_Clock (); //Init 时钟

AFE44xx_PowerOn_Init();
USB_init(); //Init USB
Init_TimerA1 ();
AFE44xx_Default_Reg_Init();

P5OUT |= BIT0;

//启用各种 USB 事件处理例程
USB_setEnabledEvents (
kUSB_VbusOnEvent + kUSB_VbusOffEvent + kUSB_receiveCompletEvent
+ kUSB_dataReceivedEvent + kUSB_UsbSuspendEvent + kUSB_UsbResumeEvent +
kUSB_UsbResetEvent);

//查看我们是否已经物理连接到 USB,如果已经连接到 USB
,//通常应用程序不调用事件处理程序,但这是一个例外。
if (USB_connectionInfo ()& kUSB_vbusPresent){
USB_handleVbusOnEvent();
}

_enable_interrupt (); //全局启用中断
Enable_AFE44xx_DRDY_Interrupt ();


while (1)
{
if (send_valid=1){
for (i = 0;i < USB_MCLK_FREQ/10000*40;i++){ //等待某个时间(5ms 延迟)
}

pkg_cnt++;

txString[0]=(无符号字符) 0xFF;
txString[1]=(无符号字符) 0xEF;
txString[2]=(无符号字符) 0x0F;
txString[3]=(无符号字符) 0x11;

/cdcSendDataWaitTilDone (((bytes*) txString、4、CDC0_INTFNUM、0);
cdcSendDataInBackground ((bytes*) txString、4、CDC0_INTFNUM、0);

//}
}


//检查 USB 状态并相应地直接检查主循环
开关(USB_connectionState ())
{
ST_USB_DISCONNECTED 案例:
//_bis_SR_register (LPM3_bits + GIE); //输入 LPM3并启用中断
_NOP(); //用于调试器
temp++;
中断;


实例 ST_USB_connected 否_enum:
temp++;
中断;

实例 ST_ENUM_ACTIVE:
temp++;
//_bis_SR_register (LPM0_bits + GIE); //Enter LPM0 (处于活动状态时无法执行 LPM3)
_NOP();

中断;

实例 ST_ENUM_Suspended:
temp++;
//P5OUT &=~BIT0; //挂起时,关闭 LED
//_bis_SR_register (LPM3_bits + GIE); //输入带中断的 LPM3
_NOP();

中断;

实例 ST_ENUM_IN_PROGRESS:
temp++;
中断;

案例 ST_NOENUM_Suspended:
temp++;
//P5OUT &=~BIT0;
//_bis_SR_register (LPM3_bits + GIE);
_NOP();
SEND_VALID = 1;
中断;

案例 ST_ERROR:
temp++;
_NOP();
中断;

默认值:;
}
}//while (1)

}//main() 

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

    您能用230400波特率试一下吗?

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

    Prabin、您好!

    现在我已经阅读了 Putty、不确定为什么不能工作。

    我每次向 PuTTY 发送两个字节。 但是、PuTTY 中接收到的 ASCII 与以下快照非常奇怪。

    谢谢!

    Jackie

    --C 代码=========================

    txString[0]=(无符号字符) 0xFF;
    txString[1]='A';

    cdcSendDataInBackground ((bytes*) txString、2、CDC0_INTFNUM、0);

    --快照

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

    您是否将波特率设置为230400?
    如果是、我建议您首先发送0x04和0x0D 并查看 EVM 的响应。
    作为响应、我们应该得到0x04 0x02 0x34 0x39 0x30 0x03 0x0D。

    此致、
    Prabin。