推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

STM32F103跑FREERTOS系统USART利用DMA接收数据程序

更新时间:2019-10-21 21:47:55 大小:4K 上传用户:xuzhen1查看TA发布的资源 标签:stm32f103freertos 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(3) 举报

资料介绍

STM32F103跑FREERTOS系统USART利用DMA接收数据程序

部分文件列表

文件名 大小
STM32F103跑FREERTOS系统USART利用DMA接收数据程序.pdf 4K

部分页面预览

(完整内容请下载后查看)
/*****************************************************************  
* @brief TaskUsart1.  
* @param None  
* @retval  
* @brief:  
None  
Usart1 数据缓冲于 RxBuffer1  
帧之间不允许少于 10ms,帧内字节间不允许大于  
10ms  
*******************************************************************/  
void TaskUsart1( void *pvParameters )//  
{
uint16_ti=0,j=0;  
// 记录缓存字节数  
uint16_toldcnt=MAXUsart1,cnt=0;  
uint8_tbuf[MAXUsart1];  
// 配置  
USARTX_Config(USART1,115200);  
//DMA  
USART1_DR_DMA_Config();  
for( ; ; )  
{
// 查询缓存区当前余量  
cnt=(uint32_t)DMA1_Channel5->CNDTR;  
// 余量无变化  
if(cnt==oldcnt)  
{
// 收到数据  
if(i)  
{
// 检验过  
if(Framecheck(buf,i))  
// 解析  
Framedecode(buf);  
i=0;  
}
}
// 余量有变化  
else  
{
// 变化量  
cnt=MAXUsart1+oldcnt-cnt;  
cnt=cnt%MAXUsart1;  
// 转移  
for(j=0;j<cnt;j++)  
buf[i++]=RxBuffer1[((MAXUsart1-oldcnt+j)%MAXUsart1)];  
oldcnt=(uint32_t)DMA1_Channel5->CNDTR;  

全部评论(3)

  • 2020-07-17 14:58:58shen978541732

    很不好,只有一个函数,没有具体说明

  • 2019-12-31 15:05:03ccc912

    太简单

  • 2019-10-28 14:16:55xxxman

    只有一个函数的代码,不完整,算了,1个积分的资料,我也不能要求太多