本帖最后由 symic 于 2020-7-12 12:23 编辑

很高兴能收到富芮坤开发板,拿到手感觉很是精致,小小的板子上功能很丰富,包含气压检测、六轴陀螺、温湿度计、蓝玡等模块,还带有一块LCD,方便调试。最具特色的是使用跳线来实现不同功能的切换,这样既能使用板载传感器的功能,也能将相应的GPIO口引出,方便连接其他外设,很有巧思。
FR8016HA的开发板有多种下载方式,包括JLINK和串口下载,前期使用CMSIS-DAP进行了下载,后来不知为何CMSIS-DAP出问题了,一直显示RDDI-ERR,索性就用自带的串口下载工具。也很方便 。
测试方面使用sdk自带的example程序,这里用的是ble_periphral。先开始LED灯程序。程序流程也比较清晰。主要是在proj_main(),由于main函数被封装在lib库里,这里并没有找到main函数,转而是使用多个初始化函数
user_entry_before_sleep_imp():进入睡眠模式前的回调函数,配置一些外设参数
user_entry_after_sleep_imp():退出睡眠模式后的回调函数,重新初始化外设参数,包括端口初始化、中断恢复等
user_entry_before_ble_init():BLE栈初始化前执行,一般理解为程序开始时的各种初始化操作
user_entry_after_ble_init():BLE栈初始化后执行,此时初始化已完成,开启用户任务。

将PD4、PD5、PD7分别链接上LED灯。修改代码,使用PWM驱动三个灯点亮。
在user_entry_before_ble_init()中添加初始化函数

  //使能PWM
  •                 system_set_port_mux(GPIO_PORT_D, GPIO_BIT_4, PORTD4_FUNC_PWM4);
  •                 system_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PORTD5_FUNC_PWM5);
  •                 system_set_port_mux(GPIO_PORT_D, GPIO_BIT_7, PORTD7_FUNC_PWM1);
  •                 co_printf("Here is 3\r\n");
  •                 pwm_init(PWM_CHANNEL_4, 10000, 50);        //PWM4:10KHz,50%
  •                 pwm_init(PWM_CHANNEL_5, 10000, 50);
  •                 pwm_init(PWM_CHANNEL_1, 10000, 50);
  • 复制代码
    在ble_simple_peripheral.c的simple_peripheral_init()中添加
      //交通灯依次工作                co_printf("Here is 4\r\n"); //串口调试时使用,查看是否进入<p></p>
  • <p style="line-height: 30px; text-indent: 2em;">                pwm_start(PWM_CHANNEL_4);
  •                 co_delay_100us(10000);
  •                 pwm_stop(PWM_CHANNEL_4);
  •                 pwm_start(PWM_CHANNEL_5);
  •                 co_delay_100us(10000);
  •                 pwm_stop(PWM_CHANNEL_5);
  •                 pwm_start(PWM_CHANNEL_1);
  •                 co_delay_100us(10000);
  •                 pwm_stop(PWM_CHANNEL_1);</p>
  • 复制代码
    使用FR8010H_Download_Tool.EXE下载程序,注意需要按RESET键才能连接成功。
    无标3题.png
    结果如图所示:
    微信图片_20200712120235.jpg 微信图片_20200712120226.jpg 微信图片_20200712120211.jpg
    下一步测试使用手机蓝牙与板卡进行通信。手机上安装蓝牙调试器,打开后连接上simple Per,在专业调试页面,使用通信设置添加数据包,这里的数据包结构如下,
    包头数据 校验 包尾
    1字节,0xa5 自定义 1字节,目前没用到  1字节,0x5a
    本次试验添加了一个BOOL型开关,和三个SHORT变量,RED,GREEN,BLUE,分别控制在个灯的亮度。
    微信图片_20200712120516.jpg 微信图片_20200712120511.jpg
    下载完成后,通过手机调整,可在串口中看到接收到的数据。
    无标题.png

    说说几点不足
    1、代码注释太少,特别对BLE不熟悉的开发小白不是很友好
    2、网上能找到视频教程,但是学习连接天猫精灵的教程又太老,天猫AliGenie的见面已经变了,相应的操作也有所变化,需要更新。
    3、本人由于对BLE不是很了解,还得继续对BLE及相关的AT指令进行深入学习。

    这是我之前看的优酷上的视频教程,讲的还可以。
    http://i.youku.com/u/UNDYyNjQzMTM5Ng==?spm=a2h0c.8166622.PhoneSokuUgc_1.3

    最后,再次感谢富芮坤开发板能给我试用的机会,让我开始入门BLE开发。虽然时间很短,再加上前期因疫情,很多工具都在办公室,不能及时的试用。在之后的日子里,希望能继续试用这款开发板。