91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.01M
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2021-03-27
  • 語言: 其他
  • 標簽: 其他??

資源簡介


配送一個自己寫的串口驅動程序 用DMA接收數據 接收完會產生一個空閑中斷 由此可判斷接收完一個包的數據 再配送一個我自己寫的動態內存管理 跟ESP8266的驅動 在項目中測試460800的波特率 30kb一秒的數據接收 一包1024個字節 每包需要應答15字節的情況下 AT指令處理是使用多個緩沖級來處理模塊發送過來的數據 分別有模塊應答緩沖級 跟等待應答的緩沖級、被忽略的AT指令集的緩沖級(例如注冊一個SEND OK\r\n則模塊應答此條指令立刻清除緩沖級釋放內存無需等待超時直接忽略)還有需要回調的緩沖級(則出現此指令調用回調函數)都是通過注冊的方式來實現 如果出現一包跟指令被分到一個

資源截圖

代碼片段和文件信息

#include?“at.h“
#include?“string.h“
#include?“memalloc.h“
#include?“ucos_ii.h“
#include?“hal_usart.h“
#include?“delay.h“

//AT指令處理

at_t?at;

static?void?at_receive_handle(u8?*bufu16?len);

//初始化
void?at_init(u32?baud)
{
HalUSARTInit(AT_UART_PORTbaudat_receive_handle);
memset(&at0sizeof(at));
}

//設置波特率
//重新初始化串口
void?at_set_baud(u32?baud)
{
HalUSARTInit(AT_UART_PORTbaudat_receive_handle);
}

//清除所有的AT指令應答
void?at_clear_all(void)
{
for(u8?i=0;i if(at.at_rsp[i].len)
{
Free(at.at_rsp[i].buf);//釋放內存
memset(&at.at_rsp[i]0sizeof(at_rsp_t));
}
}

//AT指令處理?
void?at_processing(void)
{
u8?iindex;//關鍵字的緩存級首地址

for(i=0;i if(at.at_rsp[i].timeout?==?RESET?&&?at.at_rsp[i].len)//如果該緩沖級的數據已經超時
{
Free(at.at_rsp[i].buf);//釋放內存
memset(&at.at_rsp[i]0sizeof(at_rsp_t));
}

for(i=0;i if(at.at_wait[i].sta?==?AT_HAND_

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????10854??2017-12-05?10:21??at.c
?????文件????????2395??2017-11-25?11:15??at.h
?????文件???????22494??2017-11-25?13:48??hal_usart.c
?????文件????????1854??2017-11-23?16:03??hal_usart.h
?????文件????????2422??2017-11-27?16:20??Memalloc.c
?????文件?????????539??2017-11-25?15:42??Memalloc.h

評論

共有 條評論