FL2440的串口实验问题
本帖最后由 dfx2010 于 2010-7-20 21:09 编辑FL2440开发板,在做ADS基础实验的《实验七 串行口实验》时没得到预期结果,在dnw中敲入字符无反应。
程序代码如下:#define ULCON0 (*(volatile unsigned *)0X50000000) //UART线控制寄存器
#define UCON0 (*(volatile unsigned *)0X50000004) //UART控制寄存器
#define UFCON0 (*(volatile unsigned *)0X50000008) //FIFO控制寄存器
#define UTRSTAT0 (*(volatile unsigned *)0X50000010) //UART状态寄存器
#define UBRDIV0 (*(volatile unsigned *)0X50000028) //波特率
#define UTXH0 (*(volatile unsigned *)0X50000020)
#define URXH0 (*(volatile unsigned *)0X50000024)
#define GPBDAT (*(volatile unsigned *)0X58000054)
int TSmain()
{
char buf;
ULCON0 &=0XFFFFFF00;
ULCON0 |=0X03; //1位起始位,8位数据位
UCON0=0X0805; //串口时钟PCLK,查询方式
UBRDIV0 =0X1A; //波特率115200
while(1)
{
if(UTRSTAT0 & 0X01)//接收是否完毕 =1结束
{
buf=URXH0; //读取数据
while(!(UTRSTAT0 & 0X04));//是否允许发送 =1允许
UTXH0=buf;
}
}
return 0;
}
调试时发现在if(UTRSTAT0 & 0X01)这里不动了,程序一直在等待接收。不知道有没有人也出现这种情况,怎么解决呢?
本人是刚学嵌入式开发的菜鸟,请各位指教。 首先确保一下硬件上没有问题,方法:直接启动开发板,看串口是否有输出,开发板是否接受键盘数据,如果输入输出都没问题,那么硬件上就没有问题了。
其次,要让开发板不要启动系统,这要注意下你的薄码开关以及启动参数
最后,以上都没问题的话,应该是设置上有问题(程序本身没有问题),设置的时候多注意一下ro base 这个值你改成0试一下
页:
[1]