主题中讨论的其他器件:MSPWARE、 EVM430-FR6043、 MSP-EXP430F5529LP
大家好、
客户有问题需要您的帮助:
MSP430FR6043C 串行端口接收有时会中断、我连续发送十次、可能只有一个正确接收。 使用的外部晶体振荡器是8M、发送的数据根本没有问题。 我可以问一下哪里没有配置吗?
//UART1
// UART 模式的 GPIO 配置
P1SEL0 |=(BIT2 | BIT3);
P1SEL1 &=~(BIT2 | BIT3);
//将 USCI_A1配置为 UART 模式,8位数据,1个停止位
UCA1CTLW0 = UCSWRST;//将 eUSCI 置于复位状态
UCA1CTLW0 |= UCSSEL_SMCLK + UCRXEIE;// CLK = SMCLK
// 8MHz、并且波特率=115200 (请参见 UG)
UCA1BRW = 4;
// UCBRSx (位7-4)= 0x55、UCBRFx (位3-1)= 5、UCOS16 (位0)= 1
UCA1MCTLW = 0x5551;
UCA1CTLW0 &=~μ H UCSWRST;//从复位中释放
UCA1IE |= UCRXIE;//启用接收中断
接收中断
__interrupt void hal_uart_ISR (void)
{
switch (_ even_in_range (UCA1IV、18))
{
用例 USCI_NONE:
中断;
案例 USCI_UART_UCRXIFG:
if (((UCA1STATW&UCRXERR)=UCRXERR)
{//出现错误,错误不是由溢出引起的
。 。 。 。 。
}
否则
{//串行端口没有错误
}
中断;
案例 USCI_UART_UCTXIFG:
中断;
案例 USCI_UART_UCSTTIFG:
中断;
案例 USCI_UART_UCTXCPTIFG:
中断;
}
}
我参考 MSPware 例程。 我使用 EVM430-FR6043的演示板。 软件将在 UltrasonicGasFR6043_02_30_00_01中添加介绍此问题的段落。 另一个是 GPIO 适配。 会出现 UCRXERR、有时它可以正常接收。 该测试工具使用串行端口工具发送的消息。 单独测试发送没有问题、但接收有问题。
谢谢。此致、
本