//串口中断ISR
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
URX0IF = 0; //清中断标志
temp = U0DBUF;
}
还用到的函数:
void Delay(uint);
void initUARTtest(void);
void Init_LED_IO(void);
这个程序的串口部分使用的是中断的方式来进行数据的接收的,上面就是串口的中断服务子程序。其实这个程序重要的思想就是首先接收串口的数据,当接收到有结束符的时候(这个例子中是#)或者接收的字符数目超过3个的时候,认为收到一条命令。然后根据命令完成相应的标志位的设置并清空接受数组。可以说这是一个很简单的PC机控制2430的例子,以后真的可以通过这个程序来改成你的复杂的程序。下面我们就看一下这个程序的主程序部分,我觉得还是挺简单的,大家自己看看是能够看明白的。
void main(void)
{
uchar ii;
Init_LED_IO();
initUARTtest();
while(1)
{
if(RTflag == 1) //接收
{
if( temp != 0)
{
if((temp!='#')&&(datanumber<3))
{ //’#‘被定义为结束字符
//最多能接收3个字符
Recdata[datanumber++] = temp;
}
else
{
RTflag = 3;
文章评论(0条评论)
登录后参与讨论