2021-07-27

小电视项目中遇到大的问题(更新中)

一、SPI3

SPI3得端口与JTAG端口有重合,而STM32上电后,PB3,PB4,PA15的默认功能是JTAG,因此需要对调试工鞥进行禁用,如下所示:

GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(	RCC_APB1Periph_SPI3, ENABLE );
RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE );
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4| GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //¸´ÓÃÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB, GPIO_Pin_3 | GPIO_Pin_4| GPIO_Pin_5);

SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //ÉèÖÃSPIµ¥Ïò»òÕßË«ÏòµÄÊý¾Ýģʽ:SPIÉèÖÃΪ˫ÏßË«ÏòÈ«Ë«¹¤
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;		
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;		
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;		
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;	
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;		
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;		
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;	
SPI_InitStructure.SPI_CRCPolynomial = 7;	
SPI_Init(SPI3, &SPI_InitStructure);  

SPI_Cmd(SPI3, ENABLE); 
SPI3_ReadWriteByte(0xff);/

二、端口初始化结构体申请必须是同一个,不能是两个不同地址的结构体,在本次SPI3的初始化中,SPI_InitTypeDef SPI_InitStructure;申请了两个地方,致使TF卡初始化出错。

一、SPI3得端口与JTAG端口有重合,而STM32上电后,PB3,PB4,PA15的默认功能是JTAG,因此需要对调试工鞥进行禁用,如下所示:
二、端口初始化结构体申请必须是同一个,不能是两个不同地址的结构体,在本次SPI3的初始化中,SPI_InitTypeDef SPI_InitStructure;
申请了两个地方,致使TF卡初始化出错。
三wm8978和 FATFS的问题 播放WAV格式的音乐采用中断模式,SPI读取数据需要一定的时间,因此在播放的时候会一卡一卡的,
后期打算改为采用I2S DMA的方式,在DMA播放音乐的同时去读取数据存储在musicbuffer。
四 I2S_DMA调试记录:在调试的时候忘记初始化I2S,只打开了DMA,因此DMA进不了中断。| DMA初始化应该在GPIO初始化和I2S
初始化之后,不认进不了中断。
五、在四的基础上,DMA加入后,音乐卡顿得到明显改善,但是,会有和固定的小噪音,后期进过猜测是因为DMA传输完成一次后,去f_read
去读TF卡的时候,DMA重新从头读的时候,两个速度不一个数量级,部分数据共用一段内存会发生数据的重合,因此会有小的爆破音。
六、由于F103没有硬件双缓冲,因此只能通过软件的方式实现双缓冲,具体操作步骤:在DMA完成中断里先DMA,然后更改buffer地址,开中断
经调试,软件实现的双DMA效果良好,F103利用WM8978实现放歌功能完全可行。
七,屏幕开始调试,出现各种小问题,首先是对屏幕API不理解,图标的滑动效果应该用FILL函数而不是drawpoinr函数,其次就是各种坐标问题,图标的滑动需要首先平移一个单位,单后去clear留下的痕迹,
最好的问题是坐标不能为负,因此,图标在滑出坐标系是会出现问题。
八,字库移植,由于PCB设计的时候没有设计fW25Q64,因此只能将字库文件放在SD卡里,每当需要加载文字的时候,就去TF卡下的/SYSTEM/FONT/下去寻找字库文件。
接下来打算修改BMP图片加载驱动,原来是采用打点函数,现在准备改为填充函数方式。
九,函数改写成功,图片加载速度加快大概三分之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值