请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP-EXP430FR2433 主题中讨论的其他器件:MSP430FR2311、 MSP430FR2433、 MSP430WARE、 MSP430FR2000
参考:
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、¶m)) { 返回; } 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 键盘代码的完美补充。
罗伊