目录
一、前言
二、任务要求
三、实现步骤
3.1 打开基本任务例程
3.2 编辑任务代码
3.3 通过蓝牙烧写调试助手查看效果
3.4 修改完善代码
3.5 继续烧写调试
四、总结
一、前言
基于Phy6212或ST17H66芯片的烧写的繁琐性,因此我将使用蓝牙调试助手完成本文中程序烧写和调试的任务。
二、任务要求
1.使用Phy6212或ST17H66芯片(二者烧录方式相同)。
2.完成计时输出任务,间隔1s输出计时秒数,从上电开始计时。
三、实现步骤
3.1 打开基本任务例程
本文将使用之前的文章创建好的基础例程,其包含一个基本OSAL任务和定时事件。在该例程的基础上,本文将完成本文中的任务的开发。
例程文章和源码工程:[ BLE4.0 ] 伦茨ST17H66开发-OSAL系统中添加自己的Task任务
复制一个任务基础例程的副本工程。
打开副本工程。
3.2 编辑任务代码
现在打开Mytask.c文件,在其中编辑任务代码。
首先我们现在初始化任务中输出开始计数,告知用户已开始计数。
3.3 通过蓝牙烧写调试助手查看效果
在Keil中编译生成Hex文件。
打开蓝牙烧写调试助手,选择设备串口号,选择刚刚生成的Hex文件,勾选烧写后自动查看调试信息,随后点击开始烧写。
等待烧录完成。
烧录完成后,可以看到输出了开始计数任务。
3.4 修改完善代码
将代码修改完善,实现本文任务。
uint8 Mytask_id;
int count = 0;
void MyTask_Init( uint8 task_id ){
//保存任务id
Mytask_id = task_id;
//初始化完成事件
osal_set_event(task_id,MyTask_INIT_EVT);
}
uint16 MyTask_ProcessEvent( uint8 task_id, uint16 events ){
if(events & MyTask_INIT_EVT)
{
LOG("开始计数任务\n",count++);
osal_start_reload_timer(Mytask_id,MyTask_SIMPLE_EVT,1000);
return events ^ MyTask_INIT_EVT;
}
else if(events & MyTask_SIMPLE_EVT)
{
LOG("计数值为 %d\n",count++);
return events ^ MyTask_SIMPLE_EVT;
}
return 0;
}
3.5 继续烧写调试
蓝牙调试助手自带烧录模式,可以在不需要手动关闭串口的情况下直接烧写程序,且可以在烧写后自动查看调试信息。
首先,在Keil中编译我们完善好的程序。
编译成功后,切换到蓝牙烧写调试助手,不需要关闭串口等操作,直接点击开始烧录。
可以看到设备已经开始烧写,等待烧录完成即可。
烧录完成后可以看到设备已经开始输出计数值。
勾选左侧滚动到最新数据,可以使数据日志持续展示最新数据。
四、总结
蓝牙调试助手,在多个方面都很大的简化了烧写步骤和麻烦,为开发者提供了更方便的烧写和调试路径,虽然目前功能比较简单,但已基本满足大部分开发者的需求。
蓝奏云免费下载(不需登录无广告):蓝牙烧写调试助手.exe - 蓝奏云
CSDN下载:【免费】蓝牙烧写调试助手PhyPlusKitLekit替换版本资源-CSDN文库