at组件相关应用

发布于 2020-06-05 19:46:20
版本 RT-THread 4.0.0
文件 at_client.c at.h

void at_client_deinit(void)
{
int idx = 0;
at_client_t client = RT_NULL;

for (idx = 0; idx < AT_CLIENT_NUM_MAX; idx++)
{
client = &at_client_table[idx];
rt_device_close(client->device);
at_client_table[idx].device = NULL;
}
}

有些设备要通过AT命令进行设置,设置完之后,就进入非AT命令模式,为方便转换特加入此函数,请大神指点。

查看更多

关注者
0
被浏览
137
1 个回答
piaoxueboy
piaoxueboy 2020-06-24
    本帖最后由 piaoxueboy 于 2020-6-24 21:01 编辑


版本 RT-THread 4.0.2
文件 at_client.c(v1.3.0) at.h

void at_client_deinit(void)
{
int idx = 0;
at_client_t client = RT_NULL;

for (idx = 0; idx < AT_CLIENT_NUM_MAX; idx++)
{
client = &at_client_table[idx];

if (client->lock)
{
rt_mutex_delete(client->lock);
}

if (client->rx_notice)
{
rt_sem_delete(client->rx_notice);
}

if (client->resp_notice)
{
rt_sem_delete(client->resp_notice);
}

if (client->device)
{
rt_device_close(client->device);
}

if (client->recv_line_buf)
{
rt_free(client->recv_line_buf);
}

if (client->parser)
{
rt_thread_delete(client->parser);
}

at_client_table[idx].device = NULL;
client->parser = RT_NULL;
client->urc_table = RT_NULL;
client->urc_table_size = 0;
rt_memset(client, 0x00, sizeof(struct at_client));
}

}


执行at_client_init("uart2",128),后在执行at_client_deinit();然后在执行at_client_init("uart2",128) 就会报(0) assertion failed at function:stm32_dma_config, 请教一下该如何 解决?
qq_还没想好
qq_还没想好 2020-08-26

感觉像是底层串口驱动的问题。好像有修复串口相关的问题,拉最新的代码试试看。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友