嵌入式爱好者

查看: 3712|回复: 2

FL2440的串口实验问题

[复制链接]

1

主题

1

帖子

1

积分

扫一扫,手机访问本帖
发表于 2010-7-20 21:07:30 | 显示全部楼层 |阅读模式
本帖最后由 dfx2010 于 2010-7-20 21:09 编辑

FL2440开发板,在做ADS基础实验的《实验七 串行口实验》时没得到预期结果,在dnw中敲入字符无反应。
程序代码如下:
  1. #define ULCON0     (*(volatile unsigned *)0X50000000)     //UART线控制寄存器
  2. #define UCON0     (*(volatile unsigned *)0X50000004)     //UART控制寄存器
  3. #define UFCON0      (*(volatile unsigned *)0X50000008)      //FIFO控制寄存器
  4. #define UTRSTAT0      (*(volatile unsigned *)0X50000010)      //UART状态寄存器
  5. #define UBRDIV0      (*(volatile unsigned *)0X50000028)     //波特率
  6. #define UTXH0      (*(volatile unsigned *)0X50000020)
  7. #define URXH0      (*(volatile unsigned *)0X50000024)
  8. #define GPBDAT      (*(volatile unsigned *)0X58000054)

  9. int TSmain()
  10. {
  11.         char buf;
  12.        
  13.         ULCON0 &=0XFFFFFF00;
  14.         ULCON0 |=0X03;           //1位起始位,8位数据位
  15.         UCON0  =0X0805;          //串口时钟PCLK,查询方式
  16.         UBRDIV0 =0X1A;           //波特率115200
  17.         while(1)
  18.         {  
  19.                 if(UTRSTAT0 & 0X01)  //接收是否完毕 =1结束
  20.                 {
  21.                         buf=URXH0;       //读取数据
  22.                         while(!(UTRSTAT0 & 0X04));//是否允许发送 =1允许

  23.                         UTXH0=buf;
  24.                        
  25.                 }
  26.         }
  27.        
  28.         return 0;
  29. }

复制代码
调试时发现在if(UTRSTAT0 & 0X01)这里不动了,程序一直在等待接收。不知道有没有人也出现这种情况,怎么解决呢?

本人是刚学嵌入式开发的菜鸟,请各位指教。
回复

使用道具 举报

0

主题

905

帖子

743

积分

i.MX6Q通行证i.MX6UL通行证TCU通行证AM335x通行证

发表于 2010-7-22 11:02:54 | 显示全部楼层
首先确保一下硬件上没有问题,方法:直接启动开发板,看串口是否有输出,开发板是否接受键盘数据,如果输入输出都没问题,那么硬件上就没有问题了。
其次,要让开发板不要启动系统,这要注意下你的薄码开关以及启动参数
最后,以上都没问题的话,应该是设置上有问题(程序本身没有问题),设置的时候多注意一下ro base 这个值你改成0试一下
gaojj 该用户已被删除
发表于 2011-4-3 14:18:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-1-12 06:17

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表