硬汉嵌入式论坛

 找回密码
 立即注册
查看: 517|回复: 3
收起左侧

F429的音乐播放器

[复制链接]

6

主题

25

回帖

43

积分

新手上路

积分
43
发表于 2025-2-18 10:23:14 | 显示全部楼层 |阅读模式
本帖最后由 努力编程的小李 于 2025-2-18 10:33 编辑

想请教一下大佬们F429音乐播放器中任务间的通信的思路。  

我认为的是:首先GUI按键按下播放、上一曲、下一曲通过xQueueSend发送歌曲信息,main.c中的音乐任务通过xQueueReceive接收到歌曲信息后,进行事件标志组的等待,当等待到退出播放、播放时间获取、填充缓冲区这几个事件标志组置1,去执行音乐播放的demo,当执行完这一首后,会发送WM_SendMessageNoPara,去让emWin切换到下一首歌,依次轮询
这是我认为的一个过程,有什么不对或者补充的可以交流一下
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115650
QQ
发表于 2025-2-18 11:51:54 | 显示全部楼层
对,基本上就是这样,特别注意DMA双缓冲的处理。
回复

使用道具 举报

6

主题

25

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2025-2-18 14:25:52 | 显示全部楼层
eric2013 发表于 2025-2-18 11:51
对,基本上就是这样,特别注意DMA双缓冲的处理。

DMA双缓冲应用于事件9和事件10,但是我有一个问题是并没有在项目demo中看到事件标志组将这两个事件setbit
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115650
QQ
发表于 2025-2-18 14:48:51 | 显示全部楼层
努力编程的小李 发表于 2025-2-18 14:25
DMA双缓冲应用于事件9和事件10,但是我有一个问题是并没有在项目demo中看到事件标志组将这两个事件setbit

[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*	函 数 名: PLAY_DMA_IRQHandler
*	功能说明: 播放DMA中断
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
#include "RTL.h"
#if 0
	extern OS_SEM SemaphoreVedio;
#endif
extern OS_TID HandleMusicStart;
extern __IO int8_t VedioSynCount;
void PLAY_DMA_IRQHandler(void)
{    
	/* 检测DMA2_Steam5传输完成标志 */
	if(DMA2->HISR & DMA_IT_TCIF5)	
	{ 
		/* 清除传输完成标志 */
		DMA2->HIFCR |= DMA_IT_TCIF5;	

		if(s_ucPlayRecMode == 1)
		{
			/* 获取当前使用的缓存,如果是1则使用的是缓存1,如果是0那么使用的是缓存0 */
			if(DMA2_Stream5->CR & DMA_SxCR_CT)
			{
				/* 当前使用的是缓存 1 */
				isr_evt_set (0x0400, HandleMusicStart);
			}
			else 
			{
				/* 当前使用的是缓存 0 */
				isr_evt_set (0x0200, HandleMusicStart);
			}
		}
		
		VedioSynCount++;
		
		#if 0
			if(VedioSynCount == 2)
			{
				memset(ptMP3->pI2SBuffer0, 0, 2304*2);
				memset(ptMP3->pI2SBuffer1, 0, 2304*2);
			}
			isr_sem_send (&SemaphoreVedio);
		#endif
	}   			
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-9 14:48 , Processed in 0.238898 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表