我想在我的自定义固件中使用BLE UART(BleNordicUART模块)来打印简单的调试输出(我没有编程夹具)。 在Wiki或源中找不到关于BLE UART的任何信息。 我可以从我的Android设备找到并连接到BLE UART服务,但是没有收到任何数据。
有人可以帮忙吗?
谢谢
答案 0 :(得分:0)
在BleController.hpp中找到了send_ble_nus_data()函数。
答案 1 :(得分:0)
DebugService 是使用BLE Nordic UART的替代方法,它可以为您提供实时调试消息并将其存储到EEPROM以供以后检索。
有关该文档的文档仍然很少(请参阅:MovesenseCoreLib中的 debug.yaml ),但这是简短版本:
要在代码中写入(信息级别)调试消息(其他级别,请参见:DebugLogger.hpp):
DebugLogger::info("stateChange DOUBLETAP: newState = %d", stateChange.newState);
要通过BLE获取DebugMessages:
订阅路径 / System / Debug / {Level} ,其中{Level}是以下项之一:
要将调试消息存储到EEPROM,必须定义要在其中使用的存储区 App.cpp ,并确保它与Logbook内存没有重叠。定义示例(调试用16kB,日志用余量):
// Define 16kB DEBUG message area
// NOTE: If building a simulator build, these macros are obligatory!
DEBUGSERVICE_BUFFER_SIZE(6, 120); // 6 lines, 120 characters total
DEBUG_EEPROM_MEMORY_AREA(true, 0, 16384)
// Rest of the EEPROM is for Logbook
LOGBOOK_MEMORY_AREA(16384, (384 * 1024)-16384);
...并在 / System / Debug / Log / Config 上配置通过PUT存储到EEPROM的最低级别。
要从EEPROM获取条目,请在 / System / Debug / Log 上使用包含最大时间戳记的查询对象执行GET(在Movesense> = 1.9中使用“ Id”)来获取(GET返回一次最多输入4-6个条目,因此您必须反复调用它才能获取所有条目。
全面披露:我为Movesense团队工作