大佬们帮忙看一看
<p>本人想基于MSPM0L1306实现利用串口输入控制单片机功能的程序,例如如果检测到串口输入的值为3,那么就输出当前的温度值,但是无论怎么做都成功不了,还请各位大佬帮忙看一下怎么改正,以下为部分源代码,其中rxData为记录串口输入的变量,uint_8和uint_16都试过了,没用</p><p> </p>
<p> </p>
<p> </p>
<p>void UART_0_INST_IRQHandler(void)<br />
{<br />
switch (DL_UART_Main_getPendingInterrupt(UART_0_INST))<br />
{<br />
case DL_UART_MAIN_IIDX_RX:<br />
rxData = DL_UART_Main_receiveData(UART_0_INST);<br />
break;<br />
default:<br />
break;<br />
if(rxData == '3')<br />
{<br />
UARTprintf("The current temperature is \n"); //UARTprintf为前面定义的字符串输出函数,没有问题<br />
Usart_Send_16bit_Data(result); //Usart_Send_16bit_Data为前面定义的整型输出函数,没有问题<br />
UARTprintf("*C\n");<br />
}<br />
else if(rxData == 10 )<br />
UARTprintf("please input the right number \n");<br />
}<br />
}</p>
<p>switch 中遇到break会跳出switch,因此,你这代码永远不会执行到 if(rxData == '3')这一步</p>
<p>建议不要在中断里做判断,直接在main的while函数中去判断rxData数据,如果不等于0进入你的switch,处理完后rxData清零。</p>
页:
[1]