CH573蓝牙初学问题
  1. 看了EVT里面的样例,很多具体的看不到。函数和变量的名称如何来的不是很清楚。

    有电无从下手的感觉


      我要实现的功能,CH573做从机,比如和手机app进行连接后,手机app发送数据,从机处理后返回特定数据。 

     

      但是我看了peripheral的代码,也没看懂,我发送和接收要如何处理。

     有没有具体一点的,就是实现从机数据接收和发送的样例代码。   

      先入个门。

谢谢

icon_rar.gifCH57x蓝牙开发入门一.rar

你好,可以看下这个说明,可以上手调试,但是具体函数功能,设置为什么如此规定,牵涉到BLE的协议规范,是无法速成的,还是要从技术本身了解。


芯片仿真使用PB16 PB17(28脚封装没有引脚,不支持仿真)

CH573不支持仿真?


image.png

573的仿真口


void App_Key_Init(void)
{
    App_Key_TaskID = TMOS_ProcessEventRegister( App_Key_Event );        //创建任务
    tmos_start_task(App_Key_TaskID, KEY_Action_EVT, KEY_Action_Tim);    //设置任务延时10ms启动
    GPIOB_ModeCfg( KEY_PIN, GPIO_ModeIN_PU );                           //按键初始化为上拉输入

    #if 1
    GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_20mA );
    GPIOA_ResetBits(GPIO_Pin_9);

    #endif
    //externbStatus_ttmos_stop_task();

}

static uint16 App_Key_Event( uint8 task_id, uint16 events )
{
    static unsigned short time = 0;
    if ( events & KEY_Action_EVT )
    {
        time++;
        if(time > 50)
        {
            time = 0;
            GPIOA_InverseBits(GPIO_Pin_9);
        }

        tmos_start_task(App_Key_TaskID, KEY_Action_EVT, KEY_Action_Tim);    //设置任务延时10ms启动
        return ( events ^ KEY_Action_EVT );
    }

  // Discard unknown events
  return 0;
}



上面是我那mesh例程里面的adv_ali_light例程上加的代码,想用B22接按键控制  B15的电平了  为了看任务跑起来没有  在任务里面加了灯的闪烁,  但是出来的效果是 灯只在复位后快闪了几下   任务有什么写的不对的地方么?


而且按键莫名其妙的可以控制B15了   没事按下 A9控制的灯都可以闪烁几下


你上面那个代码的逻辑是,注册了一个任务ID
然后延时启动了KEY_Action_EVT任务,到App_Key_Event 函数里面执行该任务

任务的里面的功能代码是重复延时(10ms后)启动KEY_Action_EVT任务,累计任务触发50次后,翻转GPIOA_InverseBits(GPIO_Pin_9);


从代码里面看也没用PB15什么事情,跟PB22也没有关系


但是和PA9有关系啊  但是没见灯的闪烁


PA9默认配置的是串口1的输出,你换个IO就行,或者把串口初始化关一下,debug关一下。


只有登录才能回复,可以选择微信账号登录