7132|3

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于PTR8500在使用过程中出现的问题 [复制链接]

我们最近在研究NRF9E5,我们自己做了一个基于nrf9e5的射频收发系统,也根据已有的一些程序调试串口通讯,但在使用中出现了以下问题: 串口通讯一直调试不通,返回值持续为乱码。 因为之前我们用过PTR5000,而且调试是成功的,所以过PTR5000及PTR8500两款产品进行调研,认为: 1.两款产品使用芯片在单片机内核上是基本一致的,主要不同在RF射频部分,而非与计算机的通讯部分; 2.对两款产品C编程时所使用的头文件进行比较,发现:这两款产品在关于串口通讯方面使用的寄存器名称和地址都是一致的,我们认为这两款产品与串口通讯部分的程序应该也是一致的,并且可以互相交叉使用。 3.经过与一些网上公布的成熟程序相比较,我们使用的串口通讯程序是正确的。 所以进行了以下步骤的测试: l 对EEPROM下载串口通讯部分程序 l 在调试板上插接PTR5000,发现返回值正常 l 在测试板上插接PTR8500,发现返回值为乱码,而且乱码还会随着程序返回内容的不同而改变 由以上问题,我们想请教一下: 1.为何会出现上述乱码现象(软件及硬件军可能出现的问题是什么?) 2.这两款模块在使用过程中,外围电路有什么不同(主要指串行通讯和与EEPROM通讯方面) PS:在下文中附上我们使用的用于调试NRF9E5的串口通讯程序。谢谢! #include <Nordic\reg9e5.h> void Init(void) { TH1 = 243; // 4800@4MHz (when T1M=1 and SMOD=1) CKCON |= 0x10; // T1M=1 (/4 timer clock) PCON = 0x80; // SMOD=1 (double baud rate) SCON = 0x52; // Serial mode1, enable receiver TMOD = 0x20; // Timer1 8bit auto reload TR1 = 1; // Start timer1 P0_ALT |= 0x06; // Select alternate functions on pins P0.1 and P0.2 P0_DIR |= 0x02; // P0.1 (RxD) is input } void PutChar(char c) { SBUF = c; while( ! TI ) ; TI = 0; } void PutString(const char *s) { while(*s != 0) PutChar(*s++); } void main(void) { int i ; Init(); for (i=0;i<5;i++) PutString( " Hello World ! \ n " ); } 盼有大侠回复!谢谢!

最新回复

void PutChar(char c) {       SBUF = c;     while( ! TI ) ;     TI = 0; } 改成void PutChar(char c) {       SBUF = c;     while( TI==0 ) ;     TI = 0; } 试试  详情 回复 发表于 2007-11-20 18:32
点赞 关注

回复
举报

23

帖子

0

TA的资源

纯净的硅(中级)

沙发
 

回复:关于PTR8500在使用过程中出现的问题

哈哈~~~讯通搞得鬼~~~ void TimeInit() using 0 { TMOD = 0x21; //timer1 working mode 1 SCON = 0x58; //uart mode 1,ren==1 // PCON = 0x00; PCON = 0x80; /*---------------------------------- 定时器0定时参数设置 ----------------------------------*/ TL0 = 0; TH0 = T0_5mS; TR0 = 1;//启动定时器0 SystemBuffers.DisplayCount = 0; /*---------------------------------- 定时器1定时参数设置 ----------------------------------*/ TL1 = 0xfd; TH1 = 0xfd;
 
 

回复

21

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

回复: 关于PTR8500在使用过程中出现的问题

void PutChar(char c) { SBUF = c; while( ! TI ) ; TI = 0; } 改成void PutChar(char c) { SBUF = c; while( TI==0 ) ; TI = 0; } 试试
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(高级)

4
 

回复: 关于PTR8500在使用过程中出现的问题

void PutChar(char c) { SBUF = c; while( ! TI ) ; TI = 0; } 改成void PutChar(char c) { SBUF = c; while( TI==0 ) ; TI = 0; } 试试
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表