注册 登录
查看: 439|回复: 7

用蓝牙(uart4)进行通信,为何发送字符接收不到???

[复制链接]
发表于 2014-12-13 10:08:14 | 显示全部楼层 |阅读模式
#include "common.h"
#include "include.h"

void main()
{
    char ch;
    uart_init(UART4,115200);     //初始化串口(
    printf("\n山外初学123论坛:www.vcan123.com");
    uart_putstr(UART4 ,"\n\n\n接受数据,并进行发送:");         //发送字符串
    while(1)
    {
      if(uart_query(UART4)!= 0)  //查询是否接收到数据                              
        {
            uart_getchar(UART4,&ch);                               //等待接收一个数据,保存到 ch里
            uart_putchar(UART4, ch);                                //发送1个字节
        }
        if(uart_querychar(UART4, &ch) != 0)                        //查询接收1个字符
        {
            uart_putchar(UART4, ch);                                //发送1个字节
        }

        //注:上面两个 if 的实现功能都是一样的。

        //uart_getchar 和 uart_querychar 的区别在于 ,前者 需要等待接收到数据,后者查询是否接收到,接收到就接收,接收不到就退出
    }
}


回复

使用道具 举报

 楼主| 发表于 2014-12-13 10:11:04 | 显示全部楼层
那个底层默认的UART3已经改成UART4了,引脚也是接对了,而且printf也是可以用的,就只是接收不到字符。。。
回复 支持 反对

使用道具 举报

发表于 2014-12-13 10:57:41 | 显示全部楼层
是不是单片机的RX管脚有误啊
回复 支持 反对

使用道具 举报

发表于 2014-12-13 14:18:40 | 显示全部楼层
波特率问题
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-22 16:42:50 | 显示全部楼层
3119459734 发表于 2014-12-13 10:11
那个底层默认的UART3已经改成UART4了,引脚也是接对了,而且printf也是可以用的,就只是接收不到字符。。。 ...

我也是这个问题,请问你解决了吗?
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-22 16:49:36 | 显示全部楼层
申继鹏 发表于 2015-1-22 16:42
我也是这个问题,请问你解决了吗?

你的蓝牙是否需要配置什么的?波特率是否对?
回复 支持 反对

使用道具 举报

发表于 2015-1-22 16:53:08 | 显示全部楼层
玄来玄去 发表于 2015-1-22 16:49
你的蓝牙是否需要配置什么的?波特率是否对?

我是用核心板自带的串口四c14,c15,该改的都改过来了,波特率高了点115200,串口就是接受不到数据,换成其他串口就可以了,不清楚怎么回事
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-22 17:12:05 | 显示全部楼层
玄来玄去 发表于 2015-1-22 16:49
你的蓝牙是否需要配置什么的?波特率是否对?

终于解决了。。。换成串口四pc14,pc15之后各种调试都ccd都不行,无奈安装了k60的底座之后只能用那个最上面的串口四了,实在没辙了,我把左边那个nrf无线模块的pa14,pa15引脚换成了串口0,终于对了,不过到现在我也没搞清楚串口四为什么不能用,害了我好长时间啊。。。。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

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

本版积分规则

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