从蓝牙设备从 pic18f4525 上的 RCREG 读取数据

Posted

技术标签:

【中文标题】从蓝牙设备从 pic18f4525 上的 RCREG 读取数据【英文标题】:Reading data from RCREG on pic18f4525 from bluetooth device 【发布时间】:2012-06-09 15:50:04 【问题描述】:

我有一个项目,我试图通过蓝牙设备将数据从安卓手机发送到 pic18f4525。目前,我只是想让图片识别像“A”这样的简单字母。

据我了解,当 pic 通过 PORTC.7(RX 引脚)接收数据时,它会将 8 位信息存储到 RCREG 寄存器中,然后我要做的就是读取数据。我知道图片正在接收数据,因为正在设置接收标志。此外,我将示波器连接到图片的接收引脚,它正在接收正确的 01 序列。

我的问题是,我如何读取 RCREG 寄存器来访问信息?据我所知,我可以只使用 usart.h 中的 ReadUSART 但是这个头文件不会为我编译,所以我试图在没有那个头文件的情况下访问这些数据。有没有办法做到这一点?我试过直接存储数据(即值 = RCREG),我可以“读取”寄存器(接收标志被重置,所以我知道我正在读取它)但无论我做什么,图片总是认为该值为 0xFF发送。

我正在使用带有 ICD2 和 CC8E 编译器的 MPLAB 8.85 版。任何有关如何读取数据的帮助将不胜感激。我也完全阅读了图片上使用usart的数据表,阅读了编译器手册,并对该主题进行了多次搜索,但无济于事。

感谢您的帮助。

更新:

完成!!!在又搞砸了几个小时后,我终于让它工作了。这实际上是一个波特率问题。感谢您的所有帮助!

【问题讨论】:

发布您如何尝试读取数据的代码片段将有助于诊断您的问题。 另外请发布您如何配置图片以使用 PORTC.7 作为 UART RX 引脚。 PIC 引脚共享许多功能,有时要正确设置所有配置寄存器可能会很棘手。 【参考方案1】:

你正在做的应该工作。这听起来像是波特率不匹配(不知何故,您可能忽略了设置 BRG 寄存器或错误计算了其中的值。)我会尝试写入 TXREG,触发 TX 引脚上的写入,您可以在示波器上捕获并验证实际波特率是否与 RX 上的波特率相同。

【讨论】:

以上是关于从蓝牙设备从 pic18f4525 上的 RCREG 读取数据的主要内容,如果未能解决你的问题,请参考以下文章

PIC16F690上的Uart和蓝牙问题

PIC18F 分钟和小时定时器

PIC18f46k42 UART没有收到

基于PIC18F97J60单片机协议栈设计

我用mplab 编写一个pic18f252的c 程序,创建时显示:can't open "pic.h" head file such director

从使用蓝牙/wifi 连接的移动设备访问 PC 上的本地主机