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.

[参考译文] MSP-EXP430FR2433:MSP430功能代码示例/低功耗十六进制键盘/ TI 技术手册 SLAA773 / MSP430FR2000的移植

Guru**** 2595805 points
Other Parts Discussed in Thread: MSP430FR2311, MSP430FR2433, MSP430FR2000

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/647846/msp-exp430fr2433-msp430-function-code-examples-low-power-hex-keypad-ti-tech-note-slaa773-porting-from-msp430fr2000

器件型号:MSP-EXP430FR2433
主题中讨论的其他器件:MSP430FR2311MSP430FR2433MSP430WAREMSP430FR2000

参考:

使用 MSP430TmMCU 的低功耗十六进制键盘

Low_Power_Keypad.zip

FR2000的此键盘代码在 FR2433上工作正常。 CCS:MSP430: 闪存/FRAM 的使用量为422字节。 RAM 的使用是160字节。

FR4133 IR TX 键盘代码的完美补充。

但是、需要更改用于向 PC 发送按键编号的串行 UART。 代码使用 UCA0:

静态内联 void UART_init()
{
P1SEL1 = 0x00; //初始化 USCI_A0 UART 操作
P1SEL0 =(BIT6 | BIT7);

//配置 UART_A0
UCA0CTLW0 = UCSWRST;//将 UART 模块保持在复位模式
UCA0BRW = 6; // 4800波特
UCA0MCTLW = 0xEE00; // 32768/4800 - INT (32768/4800)= 0.83
// UCBRSx 值= 0xEE (请见 UG)
UCA0CTLW0 = UCSSEL_1;//从复位状态释放并将 ACLK=32768设置为 UCBRCLK
}

2433 LP 的唯一示例代码使用 UCA1 (?) 以及 DriverLib 和 RX 中断:

//初始化 EUSCI
void initEusci (void)
{
//配置 UCA1TXD 和 UCA1RXD
P1SEL0 |= BIT4 | BIT5;
P1SEL1 &=~(BIT4 | BIT5);

//配置 UART
// software-dl.ti.com/.../index.html
EUSCI_A_UART_initParam param ={0};
param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
param.clockPrescalar = 8;
param.firstModReg = 10;
param.secondModReg = 247;
param.parity = EUSCI_A_UART_NO_parity;
param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
param.numerofStopBits = EUSCI_A_UART_Oe_STOP_BIT;
param.uartMode = EUSCI_A_UART_MODE;
param.oversaming= EUSCI_A_UART_oversaming_BAUDRATE_generation;

if (STATUS_FAIL = EUSCI_A_UART_init (EUSCI_A0_BASE、&param))
{
返回;
}

EUSCI_A_UART_ENABLE (EUSCI_A0_BASE);

EUSCI_A_UART_clearInterrupt (EUSCI_A0_BASE、
EUSCI_A_UART_receive_interrupt);

//启用 USCI_A0 RX 中断
EUSCI_A_UART_enableInterrupt (EUSCI_A0_BASE、
EUSCI_A_UART_receive_interrupt); //启用中断
} 

在 FR2000代码中将 UCA0更改为 UCA1不起作用。

那么、什么是 UCA0、UCA1? USCI_A0和 EUSCI_A_UART 之间有何区别? 如何将 FR2000代码更改为在 FR2433的反向通道 UART 上运行? 只需通过 FR2433反向通道 UART 发送一个密钥编号0-15即可。

提前感谢您。 FR4133 IR TX 键盘代码的完美补充。

罗伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过切换到 MSP430FR2311 (在 www.ti.com/.../slaa812.pdf 中阅读有关移植的信息)、已"解决"了我的部分问题。
    现在,我的*DO *有键盘,带可正常工作的 UART 到 PC。

    使用 MSP430FR2433的两个选项:

    a)在此处获取有关添加到小键盘功能的简单 UART 代码的建议。

    b)将2433 OutOfBox 示例下行至仅 UART 代码(DriverLib)、然后添加键盘代码。

    请提供咨询意见。

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

    您链接到的十六进制键盘代码被用于存储器少于500字节 的 MSP430FR2000上。 该器件还仅有一个 UART 模块、即 USCI A0。 如果要在其他器件上使用此 COD、则需要修改软件以适应您所使用的器件/电路板上可用的硬件模块。 MSP430Ware 中提供了 MSP430FR2433器件的 UART 用法示例,您可以在 CCS 的 TI Resource Explorer 中或 http://dev.ti.com 中找到该示例
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。