ilovefengshulin

  • 2020-06-22
  • 回复了主题帖: RTL8762,优秀的国产BLE低功耗解决方案

    看起来性价比挺诱人,了解下。

  • 2020-06-10
  • 回复了主题帖: 寻找开源爱好者一起完善BabyOS开源项目

    有点像RTOS全家桶,帮顶

  • 2020-05-21
  • 发表了主题帖: 使用ST公司提供的MP3解码库

    硬件平台:STM32F746G-DISC 开发平台:KEIL_5.29 我这里不再介绍MP3文件的详细结构,只介绍如何使用MP3解码库,需要了解MP3文件信息可以参考这个网:https://www.cnblogs.com/ranson7zop/p/7655474.html 这个解码库可以从ST公司官网通过搜索关键词“x-cube-audio”下载。下载解压完后,进入到此路经下:STM32CubeExpansion_Audio_V1.1.1\Middlewares\ST\STM32_Audio\Codecs,可以看到有两个文件夹,如下图所示:    进入到解码库的目录下,会有3个文件夹,如下图所示:   进入lib文件夹下,会有3个解码库,分别对应不同的平台   我这里使用的是STM32F7,当然选用M7平台的lib文件。 接下来创建KEIL工程,先把SD卡驱动和音频芯片WM8994驱动调试好,然后将SpiritDSP_MP3_Dec文件夹复制到工程目录下,keil中添加lib文件,并设置include包含路经,那么MP3解码库就添加完成了。     接着说明一下MP3解码用到的函数,这些函数可以在spiritMP3Dec.h文件中找到。 1. void SpiritMP3DecoderInit( TSpiritMP3Decoder *pDecoder, fnSpiritMP3ReadCallback* pCallbackFn,                       fnSpiritMP3ProcessCallback *pProcessFn,                       void * token   ) 函数功能:初始化MP3解码器,每次解码完后,再重新解码新的MP3文件,就必须再次先调用这个函数,以完成MP3解码器的初始化。 参数: TSpiritMP3Decoder *pDecoder: 指向要初始化的解码器结构。所有解码器变量都存储在此结构中。 解码器不使用非恒定的静态或全局变量,因此所有函数都是可重入的。 fnSpiritMP3ReadCallback* pCallbackFn: 回调函数指针,解码器将使用此功能来检索输入的mp3数据。 fnSpiritMP3ProcessCallback *pProcessFn: 回调函数指针,解码器将使用此功能来解码Layer3文件时,处理MDCT系数。目前不需要用到此功能,设置为NULL。 void * token: 传递给回调函数的可选参数。 2. typedef unsigned int (fnSpiritMP3ReadCallback) ( void * pMP3CompressedData, unsigned int nMP3DataSizeInChars, void * token ) 函数功能:解码器使用它来读取MP3文件数据,必须实现此功能。 参数:   void * pMP3CompressedData: 存放读取的mp3数据。 unsigned int nMP3DataSizeInChars: 需要读取的MP3数据大小。 void * token : 回调函数的可选参数。 3. unsigned int SpiritMP3Decode ( TSpiritMP3Decoder *pDecoder,                               short *pPCMSamples,                    unsigned int nSamplesRequired,                TSpiritMP3Info * pMP3Info                  ); 函数功能:解码每一帧MP3数据,并将解码完后的数据存放在pPCMSamples中。如果此函数的返回值小于nSamplesRequired,则文件指针已到达MP3文件末尾,MP3文件解码完成,否者继续调用此函数解码。 参数: TSpiritMP3Decoder *pDecoder: 指向初始化的解码器结构。 short *pPCMSamples: 存放解码输出的PCM数据。 unsigned int nSamplesRequired: MP3文件每个音频帧的采样字节数 TSpiritMP3Info * pMP3Info: 解码完成后,存放当前音频帧的解码信息。其中TSpiritMP3Info结构体中的成员IsGoodStream,用来判断当前音频帧解码是否成功,解码成功为1,失败为0。         介绍下该解码库的使用流程,具体代码请参考我的程序。    

  • 2020-03-10
  • 回复了主题帖: TouchGFX多屏切换无过渡效果,求解?

    结贴,问题已解决。附加解决方法: 1.打开TouchGFXGeneratedHAL.CPP文件。 2.找到void TouchGFXGeneratedHAL::initialize()这个函数,里面有一个设置帧缓存器地址的函数setFrameBufferStartAddresses((void*)0xC0000000, (void*)0xC0119400, (void*)0),这个函数的第一个参数为帧缓存器第一个起始地址,第二个参数为帧缓存器第二个起始地址(我这里使用的是双缓存器,如果是但缓存器,可以设置为0),第三个参数为动画缓存器,默认为0(就是禁止动画效果),设置为其他值则开启动画效果,动画缓存器的大小和帧缓存器的大小一样,只要地址不和帧缓存器的地址重叠就行。

  • 2020-03-09
  • 发表了主题帖: TouchGFX多屏切换无过渡效果,求解?

    软件平台: 1.KEIL_5.29 2.TouchGFX_4.13 3. STM32CubeMX_5.50 硬件平台:STM32F746GDISC(屏幕已被我更换为800X480分辨率的屏幕) 问题描述:    使用STM32CubeMX配置并生成工程,然后通过TouchGFXDesigner设计两个screen,分别为screen1和screen2。工作流程是screen1显示后,等待2s,然后切换到screen2。就这么简单。在TouchGFXDesigner通过仿真后,可以看到screen1切换到screen2中间会有平滑过渡效果(附件有仿真程序,可以直接运行),但是通过MDK编译后,下载到板子时,screen1切换到screen2没有看到平滑过渡效果,是screen1显示完后,等待2s,直接跳到screen2(或许有过渡效果,只是切换速度太快,看不到而已吗?)。求解释?

  • 2019-12-26
  • 加入了学习《世健第四期》,观看 全新设计的8通道16位同步采样SAR ADC -- AD7606B

最近访客

< 1/3 >

统计信息

已有93人来访过

  • 芯币:1531
  • 好友:4
  • 主题:23
  • 回复:152
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


AllenFire 2018-5-15
ilovefengshulin: 我是做嵌入式底层的,像电脑主板设计我不会啊
谢谢你的回复,有认识的朋友做这一块吗?
AllenFire 2018-5-14
你好,很高兴认识你。我们是做防火墙电脑的,想找人设计研发主板,报酬私聊。 有兴趣吗?
AllenFire 2018-5-14
你好,很高兴认识你。我们是做防火墙电脑的,想找人设计研发主板,报酬私聊。 有兴趣吗?
nmg 2015-7-8
ilovefengshulin: 国内最近还没有铺货,等货到了,再给大家分享下,哈
你海淘啦?
nmg 2015-7-7
Hi,ilovefengshulin
你最近又进一步去了解STM32F7这个新板子了吗?有的话,来论坛分享哈
搜集到新的开发资料也可以来分享
查看全部