通过UART发送

4个帖子/ 0新
最后一篇
Liuluan002.
离线
最后一次露面:6个月2周前
加入:2015-11-27 14:24
通过UART发送

嗨对话框,

我正在申请保持扫描,我也需要将扫描的包拉到UART中。我担心我会在我通过UART发送时扫描被扫描。是否有任何方法我可以通过调查我通过UART的包,而不是阻塞扫描过程?

在这里,我在这里放了一些我的代码:

void app_scan2(void)
{
struct gapm_start_scan_cmd * cmd = ke_msg_alloc(gapm_start_scan_cmd,
task_gapm,task_app,
gapm_start_scan_cmd);

cmd-> op.code = gapm_scan_passive;
cmd->间隔= 12288;// 6000ms.
cmd->窗口= 12288;// 6000ms.
cmd-> mode = gap_gen_discovery;
cmd-> filt_policy = scan_allow_adv_all;
cmd-> filter_duplic = scan_filt_duplic_dis;

ke_msg_send(cmd);

}

int gapm_adv_report_ind_handler(ke_msg_id_t msgid,
struct gapm_adv_report_ind * param,
ke_task_id_t dest_id,
ke_task_id_t src_id)
{

volatile struct avd_report adv = param->报告;

for(未签名的char i = 0; i <6; i ++)
{
white_addr1 [i] = adv.adv_addr.addr [i];
}

UART2_INIT(UART_BAUDRATE_115K2,3);

for(未签名的char i = 0; i <6; i ++)
{
printf_byte(adv.adv_addr.addr [5-i]);
UART2_INIT(UART_BAUDRATE_115K2,3);
}

UART2_INIT(UART_BAUDRATE_115K2,3);

for(int j = 0; j {
printf_byte(ADV.DATA [J]);
UART2_INIT(UART_BAUDRATE_115K2,3);
}

printf_string(“”);
UART2_INIT(UART_BAUDRATE_115K2,3);

return(ke_msg_consumed);
}
}

设备:
mt_dialog.
离线
最后一次露面:3个月3天前
职员
加入:2015-06-08 11:34
嗨Liuluan002,

嗨Liuluan002,

您可以使用ARCH_PRINTF()函数而不是直接使用基本上直接使用UART的PRINTF函数。

您可以通过定义CFG_PrintF定义,在最新的SDK中启用ARCH_PRINTF()函数,检查UART端口是您已连接的uart端口,并包含要使用ARCH_PRENTF()函数的ARCH_CONSOLE.H文件。

谢谢mt_dialog.

Liuluan002.
离线
最后一次露面:6个月2周前
加入:2015-11-27 14:24
嗨对话框,

嗨对话框,
我正在尝试使用您的建议来从UART调查阵列。
但是,每次调用函数ARCH_PRINTF(“%c”,package_send [j])时,我都会重新启动系统重启。你有一些建议如何解决这个问题吗?
我的代码:
unsigned char package_send [133];
for(无符号char j = 0; j

mt_dialog.
离线
最后一次露面:3个月3天前
职员
加入:2015-06-08 11:34
嗨Liuluan002,

嗨Liuluan002,

我假设你的意思是你想打印出该数组的数据。如果您的设备最终在WRAP_PLATFORM_RESET中表示您已运行内存,则您将打印到大量数据,并且您正在为您正在打印的每个字符分配额外的消息,而不会消耗它(打印它,因为实际打印发生arch_printf_process被调用)。尝试在较小的块中打印阵列中的数组的元素,以便在进入其他数据之前调用的Arch_PrintF_Process()函数,并在要调用和打印数据。

谢谢mt_dialog.