这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » tms320c206 与 pc机串口通讯问题

共1条 1/1 1 跳转至

tms320c206 与 pc机串口通讯问题

菜鸟
2004-07-23 17:11:04     打赏
tms320c206 与 pc机串口通讯问题 一下是我用 C 写的 DSP 函数 //功能:DSP 从串口读数据
//参数:buff 为数据缓冲
// buff_len 为数据缓冲长度
// nMaxOutTime 为最大读取时间(单位毫秒)
//返回值: 已接受数据的长度
int read_comm( char *buff, unsigned buff_len, unsigned nMaxOutTime )
{
const unsigned nDR =0x0100 ;
unsigned cntBuff ;
float currPassTime ; //发送字符串已经过的总时间

currPassTime =0.0 ;
cntBuff =0;

while (currPassTime < nMaxOutTime)
{
if ( IOSR & nDR == nDR ) //有数据
{
buff[cntBuff++] = ADTR & 0xFF ;
if (cntBuff >= buff_len) break ;
}
delay(0.1 ms) ; //延时0.1 ms
currPassTime += 0.1 ;
}
return cntBuff ;
}
//功能:DSP 向串口写数据
//参数:buff 为数据缓冲
// buff_len 为数据缓冲长度
//返回值:发送是否成功 1- 成功 ;0- 失败
int write_comm(char *buff ,unsigned buff_len)
{
const unsigned nTHRE =0x0800 ;
const float nMaxCharTime =2.0 ; //发送两个字符间的最大间隔时间 ms
unsigned n ;
float curDelay ; for(n=0; n< buff_len; n++)
{
ADTR = buff[n] & 0x00FF ;
curDelay =0.0 ;
while ( curDelay <= nMaxCharTime )
{
delay(0.1ms) ; //延时0.1ms
curDelay += 0.1 ;
if (IOSR & nTHRE == nTHRE) //已发送
break ;
}
if ( curDelay> nMaxCharTime ) return 0;
}
return 1;
}
-----------------------------------------------------------
我得问题是:
1. read_comm 函数读取字符时总是掉字符
2. write_comm 函数 必须去掉 if (IOSR & nTHRE == nTHRE) 才正常 我是初学DSP 编程, 以上我已调试了多天, 望各位大侠能出手相助
不胜感谢.



关键词: tms320c206     串口     通讯     问题    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]