推荐星级:
- 1
- 2
- 3
- 4
- 5
STM32F103跑FREERTOS系统USART利用DMA接收数据程序
资料介绍
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个积分的资料,我也不能要求太多