主题: SysConfig 中讨论的其他器件
工具/软件:
团队、
代表我的客户发帖。
‘:在最大处理器电压 (3.3V) 下、以下序列会导致从我的 MSPM0L1306 处理器的 UART0 发出不正确的数据(在“\n"中“中插入两个额外的 1 位)。 我已经通过使用示波器解码数据来验证这一点。
下面是代码片段、任何可能导致这种情况的想法?
//设置 ADC 转换存储器…。然后…
DL_ADC12_enableConversions (ADC12_0_INST);
while (!DL_UART_isTXFIFOEmpty (UART_0_INST))
{
;
}
delay_cycles (1800); //在 115200 波特下具有 1 个以上的字符时间
DL_UART_Main_transmitData (UART_0_INST、‘\n');
NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);
gCheckADC = false;
DL_ADC12_startConversion (ADC12_0_INST);
while (gCheckADC == false){
__ WFE ();
}
//… 发送有关 ADC 结果的更多字符。
ADC 中断代码:
Void ADC12_0_INST_IRQHandler ( Void )
{
数量 (DL_ADC12_getPendingInterrupt (ADC12_0_INST)){
外壳 DL_ADC12_IIDX_MEM3_RESULT_LOADED:
gCheckADC = true;
休息 ;
默认值 :
休息 ;
}
}
UART0 中断代码:
Void UART_0_INST_IRQHandler ( Void )
{
无符号 字符 gEchoData;
数量 (DL_UART_Main_getPendingInterrupt (UART_0_INST)){
外壳 DL_UART_MAIN_IIDX_RX:
gEchoData = DL_UART_Main_receiveData (UART_0_INST);
IF (rxNewest++>= UInt8_MAX)
{ rxNewest = 0;
}
IF (rxNewest!= rxOldest)
rxBuffer[rxNewest]= gEchoData;
暴露 //溢出;删除字符
IF (rxNewest -==0)
rxNewest = Uint8_MAX;
休息 ;
默认值 :
休息 ;
}
}
谢谢、
Tom
