1) 以一个单独任务(发送任务)形式对数据发送进行管理; 2)发送任务与应用层之间以队列方式进行数据传送; 3) 以一个单独任务(接收任务)形式对数据接收进行管理; 4)接收任务与应用层之间以队列方式进行数据传送; 5) 方案一:非DMA;方 案二:DMA; 函数:u32 uart0_send(u8 *buf, u32 len, u32 timeout); 功能:应用层通过队列传送发送数据; 输入:buf:数据缓冲区 len:数据长度 输出:无 返回:发送长度 备注:1)发送数据包最大字节为64字节; 函数:u32 uart0_recv(u8 *buf, u32 timeout); 功能:通过队列将接收到的数据传送给应用层; 输入:buf:数据缓冲区 Timeout:超时时间; 输出:无 返回:接收长度 备注:1)从接收数据开始,以连续10ms未接收到数据为一包数据。每次向上传输一整包数据,一包数据不能分为两次向应用层传输。接收数据包最大长度为64字节;
|