找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 3267|回复: 2

[BC5系列] bc5 单个打开uart

[复制链接]
连续签到天数:1天
签到总天数:128天
签到总奖励:1561金币
发表于 2015-5-8 21:04:10 | 显示全部楼层 |阅读模式

马上注册,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
最近想在BC5上实现SPP,现在是初级阶段,当独的试了一下串口,好像收到的数据貌似是有问题的,不知道咋回事,感觉从电脑串口助手发送过来的数据多了。想问下是哪里出了问题。

#include <stdio.h>
#include <stream.h>
#include <source.h>
#include <sink.h>
#include <message.h>
#include <ps.h>
#include <panic.h>
#include <csrtypes.h>

TaskData uart;
static void UartHandler(Task t, MessageId id, Message message);

void UartHandler(Task t, MessageId id, Message message)
{
        switch (id)
        {
                case 0:
                {
                        const char *string = "Hello world";
                        uint32 length = strlen(string);
                        uint32 offset;
                        uint8 *dest;
                        Sink sink = StreamUartsink();
                        PanicNull(sink);
                       
                        offset = SinkClaim(sink, length);
                        if (offset == 0xffff)
                                panic();
                        dest = SinkMap(sink);
                        PanicNull(dest);
                        memcpy(dest + offset, string, length);
                        PanicZero(SinkFlush(sink, length));
                        MessagesendLater(t, 0, 0, 500);
                }
                break;
                case MESSAGE_MORE_DATA:
                {
                        Source source;
                        uint8 i, j;
                        uint8 *buf = NULL;
                        uint8 len = 0;
                        Source = SourceUartSource();
                        buf = (uint8 *)SourceMap(Source);
                        len = sourceSize(source);
                       
                        for(i = 0; i < len;i++)
                                printf("%x",buf[i]);
                                j = buf[id];
                }
                SourceDrop(source, len);
                break;
        }
}

int main (void)
{
        StreamUartConfigure(VM_UART_RATE_9K6, VM_UART_STOP_ONE, VM_UART_PARITY_NONE);
        MessageSinkTask(StreamUartSink(), &uart);
        uart.handler = UartHandler;
        MessageSendLater(&uart, 0, 0, 5000);
        MessageLoop();
        return 0;
}



楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
连续签到天数:1天
签到总天数:14天
签到总奖励:67金币
发表于 2015-5-9 20:05:55 | 显示全部楼层
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:128天
签到总奖励:1561金币
 楼主| 发表于 2015-5-11 08:59:23 | 显示全部楼层
btspeaker 发表于 2015-5-9 20:05
参考下:http://www.52bluetooth.com/thread-5528-1-1.html

好的,看下这个例子也好
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-30 04:27 , Processed in 0.154955 second(s), 15 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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