1. 前言
首先,感谢主办方的这次活动,让我们有机会可以学习了解这一款蓝牙开发板。
接下来,我来分享学习的一些基本步骤:先查阅开发板的操作指导手册,查看原理图,编译、链接、下载 Demo 软件工程,完成这一系列工作后,可以针对感兴趣的部分进行深入研究。
最后,若遇到难解的问题,可以向技术支持求助。
2. 关于开发板
2.1 开发资料
由于我手中的这一款开发板的硬件版本是V1.4,那么下载对应的资料即可。
《FR8016HA开发板使用手册V1.4(硬件版本V1.4).pdf》此文档详细介绍了开发板的硬件资源,并且附上了原理图,这里就不再赘述了。
Mark一下几个特点:
- 蓝牙 IC 的封装很小
- 板载资源丰富
- 支持 Jlink 调试,PC6-SCK, PC7-SWD
- 支持 Jlink 和串口两种烧录方式
点评:板载资源非常丰富,智能家居所需的基础模块都有,包括按键、LED、电机控制、蓝牙、音频、LCD显示、各类传感器等,还预留了很多扩展接口。
Keil工程。这里放一张典型的工程目录结构图。
上电后 LCD 即可显示富芮坤Logo。 由于之前安装过 CP210x 系列的驱动,所以插上后系统就识别到了这个设备。
解压源码,打开 Keil 工程,编译、链接,链接 Jlink 仿真器。
注意:
- 需要按下 Reset 键才能被 Jlink 识别。
- 按键和 IIC 接口都需要用跳线帽短接。
3. 天猫精灵互动
3.1 项目需求
通过天猫精灵控制家用设备,如LED灯。
注:步骤1~3可选,步骤4为必备。
1. 登录天猫精灵开发者平台2. 实名认证
3. 查看并学习文档
开发者入口:
4.从 gitee 下载源码建议大家从这个路径下载代码,可以保持更新,里面有一些例程。
5. 开发最初的想法是将 ble_simple_peripheral 和 ble_mesh 结合起来,那么这个项目就可以连接天猫精灵,并且可以调用一系列传感器,但是后来发现移植过去后,编译器提示存储空间不够用了,可能还需要做一些优化吧。
在此贴上 IO 翻转逻辑修改的代码。
static void app_led_set_state(void){ uint8_t high_duty,i,pwm_chl; for(i = 0;i < APP_LED_COUNT;i++) { if(app_led_state.on_off_state[i] == 0) // 语音指令:“天猫精灵,关闭灯” { //gpio_portd_write(gpio_portd_read() & (~(1<<(app_led_pwm_map[i])))); gpio_portd_write(gpio_portd_read() | (1<<(app_led_pwm_map[i]))); // 输出高电平 system_set_port_mux(GPIO_PORT_D, (enum system_port_bit_t)(app_led_pwm_map[i]), PORT_FUNC_GPIO); } else // 语音指令:“天猫精灵,打开灯” { if(app_led_state.level[i] == 0xFFFF) { //gpio_portd_write(gpio_portd_read() | (1<<(app_led_pwm_map[i]))); gpio_portd_write(gpio_portd_read() & (~(1<<(app_led_pwm_map[i])))); // 输出低电平, 点亮 system_set_port_mux(GPIO_PORT_D, (enum system_port_bit_t)(app_led_pwm_map[i]), PORT_FUNC_GPIO); } else { app_led_calc_pwm_count(&high_duty, app_led_state.level[i]); if(i == 0) pwm_chl = 0; else pwm_chl = app_led_pwm_map[i]; pwm_update((enum pwm_channel_t)pwm_chl, FREQUENCY_SET, high_duty); pwm_start((enum pwm_channel_t)pwm_chl); system_set_port_mux(GPIO_PORT_D, (enum system_port_bit_t)app_led_pwm_map[i], PORT_FUNC_PWM); } } } if(app_led_inited) { app_mesh_user_data_update((void *)&app_led_state, sizeof(app_led_state), 2000); } co_printf("test:%d %d\r\n", app_led_state.on_off_state[0],app_led_state.level[0]); }
复制代码如果开发板无法连接天猫精灵,那么可以看看这个文件的这个地方是否写错了。图中为正确写法。
编译、链接工程,然后通过 Jlink 烧录到开发板中。
对天猫精灵说,“天猫精灵,开灯”,此时PD4~PD7会置低电平,此时外接开发板的LED会亮;
对天猫精灵说,“天猫精灵,关灯”,此时PD4~PD7会置高电平,此时外接开发板的LED会灭。
- 开发板做工较一般,很多焊点没处理好。
- 遇到问题,可以在群里提问,有技术支持能够及时响应与支持,点个赞。
- BLE是个复杂的工程,需要花点时间去理解与开发。
对天猫精灵说,“天猫精灵,关灯”,此时PD4~PD7会置低电平,此时外接开发板的LED会亮。
楼主,这个地方反了吧,要是能把源码分享出来就更好了