2781|3

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

串口的发送寄存器buf写不了值 [复制链接]

我用的单片机是TMP19A61,用C写的。仿真调试时发现:串口的发送寄存器buf写不了值,而其他寄存器都可以正常设置
我的代码大概步骤是:
1.寄存器地址设置:#define SC0BUF (*(volatile unsigned char *)0xFFFFF700)等等
2.引脚的初始化 (TX,RX引脚初始化)
3.寄存器的初始化(设置波特率,发送使能,除buf以外的寄存器都进行了初始化)
4.查询等待发送buf为空,可以写数据
5.向发送buf写数据,并短暂延时

可是结果是:调试时看到发送buf寄存器的值始终为缺省值,怎么也改变不了。
我尝试了FIFO,non FIFO都不行。

不知道大家有没有出现过寄存器写不了值的情况,麻烦告知下,即使不是串口、不是这个平台下的也好,也请告诉下,谢谢各位了!

最新回复

是不是你的发送移位寄存器一直有数据,没有发送完成 导致不能往发送数据寄存器中写入数据  详情 回复 发表于 2010-1-18 11:46
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
首先需要确认这个地址0xFFFFF700 是否和技术手册一致?

另外有很多寄存器 并非可以读取的,单片机和ARM都有一些寄存器是只读(写任何值,都无实际意义),也有一些是只写, 这需要楼主好好对照对应的技术手册。


另外调试UART,可以借用一些串口调试软件,当然前提是你的单板上接有232的PHY,从而使其能与PC的串口进行连接与通讯。
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
有些芯片的UART寄存器的收发BUFFER是同一个地址,写它则是发寄存器,读它则是收寄存器,所以你要根据DATASHEET确定一下这个CPU是否也是同样的设定。如果是这样的话你出现的问题也就正常了。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
是不是你的发送移位寄存器一直有数据,没有发送完成 导致不能往发送数据寄存器中写入数据
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表