|
那就是说 我不用关心 S3C2410里面arm内部的一些寄存器的咯? 比如rURXH0,rUFCON0,rULCON0之类的东西
下面是原来编写的 你能帮我看下这个东西可以在evc里面用吗? 谢谢了
uchar sendcmd()
{
uchar send_cnt=3;
uchar send_len;
uchar temp;
do
{ rUTXH0=STX; //发送开始位
while((rUTRSTAT0&0x4)!=0x4); //等待发送完成
delay_10ms(); //开10ms定时器
while(((rUTRSTAT0&0x01)!=0x1)&&rTCNTO0!=0); //等待 直到串口收到数据或者超时
if((rUTRSTAT0&0x01)==0x1) //若为串口收到数据
{ temp=rURXH0; //将串口数据暂存于temp
delay_50us();
while(rTCNTO0!=0);
if(temp==ACK) break; //判temp 若为应答位 则跳出循环
}
}while(--send_cnt); // 若send_cnt为零 则表示mcu3次均未收到有效应答 函数返回错误值
if(send_cnt==0) return COMM_ERR;
send_len=ser_buffer[LENGTH]+5; //LENGTH为2 计算实际ser_buffer的长度
ser_buffer[send_len-2]=0; //清空BCC校验码
ser_buffer[send_len-1]=ETX; //写结束标志
for(send_cnt=0;send_cnt
{
rUTXH0=ser_buffer[send_cnt]; //依次发送通信数据缓冲区数据
if(send_cnt<(send_len-2)) //并计算BCC校验码
ser_buffer[send_len-2]^=ser_buffer[send_cnt];
if(send_cnt==send_len-3)
ser_buffer[send_len-2]=~ser_buffer[send_len-2];
while((rUTRSTAT0&0x4)!=0x4); //等待发送完成
}
return COMM_OK;
} |
|