标题:
STM32环形队列源程序 适用于UART、USB通讯
[打印本页]
作者:
new9225
时间:
2020-3-26 10:33
标题:
STM32环形队列源程序 适用于UART、USB通讯
附件是STM32环形队列程序,适用于UART、USB通讯,已经在多个产品中验证。
单片机源程序如下:
#include <stm32f10x.h>
#include <stdio.h>
#include "stdlib.h"
#include <string.h>
#include "sys.h"
#include "queue.h"
#include "usart1.h"
#include "usart2.h"
u8 buf_uart[1024];
const vu32 uart_buf_size=sizeof(buf_uart);
//==============================================================================================
// ----Function: 写满回调函数
// --Parameters:
// -----Returns:
//---------Note:
//==============================================================================================
u8 QueueWriteFull(DataQueue *Buf, QUEUE_DATA_TYPE Data, u8 Mod)
{
return QUEUE_FULL;
}
//==============================================================================================
// ----Function: 写满回调函数
// --Parameters:
// -----Returns:
//---------Note:
//==============================================================================================
void InitQueue(void)
{
if (QueueCreate((void *)buf_uart,
uart_buf_size,
NULL,
(u8 (*)())QueueWriteFull)
== NOT_OK)
{
//printf("buf_uart queue init err!\n\r");;
}
}
int main(void)
{
vu32 temp;
vu8 Key;
vu8 FlashCnt=0;
u8 data[64];
//================================
u16 i;
//==================================================================
//#define VECT_TAB_OFFSET 0 //0x4000
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //分组2:2位抢占优先级,2位响应优先级
InitQueue();
uart1_init(19200); //串口1初始化为19200---for debug
uart2_init(19200); //串口2初始化为19200---for Encrypt
while(1)
{
//=================== USB CMD Decode =========================
if (QueueNData((void *)buf_uart) > 63)
{
for(i=0;i<64;i++)
QueueRead(data+i, (void *)buf_uart);
uart_puts(data);
}
}
}
复制代码
所有资料51hei提供下载:
STM32_Queue.7z
(249.95 KB, 下载次数: 88)
2020-3-26 23:15 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1