看了EVT里面的样例,很多具体的看不到。函数和变量的名称如何来的不是很清楚。
有电无从下手的感觉
我要实现的功能,CH573做从机,比如和手机app进行连接后,手机app发送数据,从机处理后返回特定数据。
但是我看了peripheral的代码,也没看懂,我发送和接收要如何处理。
有没有具体一点的,就是实现从机数据接收和发送的样例代码。
先入个门。
谢谢
看了EVT里面的样例,很多具体的看不到。函数和变量的名称如何来的不是很清楚。
有电无从下手的感觉
我要实现的功能,CH573做从机,比如和手机app进行连接后,手机app发送数据,从机处理后返回特定数据。
但是我看了peripheral的代码,也没看懂,我发送和接收要如何处理。
有没有具体一点的,就是实现从机数据接收和发送的样例代码。
先入个门。
谢谢
你好,可以看下这个说明,可以上手调试,但是具体函数功能,设置为什么如此规定,牵涉到BLE的协议规范,是无法速成的,还是要从技术本身了解。
芯片仿真使用PB16 PB17(28脚封装没有引脚,不支持仿真)
CH573不支持仿真?
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关一下。