基于STM32的SD卡驱动及液晶驱动例程
方案:从SD卡读取图片到液晶屏显示(IAR4.22)费了老半天劲终于搞定了!源代码共享了!
代码没有整理,大家将就着看吧!顺便发几张效果图!
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_415750.jpg
(原文件名:PIC_1553.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_415751.jpg
(原文件名:PIC_2844.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_415752.jpg
(原文件名:PIC_6899.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_415753.jpg
(原文件名:PIC_7140.jpg)
手机拍的,效果不太好!下面是源文件目录!
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_415770.jpg
(原文件名:1.jpg)
忘了说了,图片我是直接写入SD卡的。所以不用加文件系统! 源文件ourdev_415790.rar(文件大小:43K) (原文件名:SD_Drive.rar) 屏幕是什么型号的 学习下,也问屏幕的型号。 下了,谢谢 ZYW-T24-36P 9325的主控 标记 9325的主控 很不错,谢谢楼主共享。 不错哦 顶一下. ding 太硬了 这个屏是SPI还是16bit并行,楼主驱动这个屏一秒能刷几帧啊,我用7s64驱动,2s才刷一帧,慢死 记号 16并,刷新速度主要受MCU速度限制。 很好的资料 谢谢共享! 不错
支持支持 jihao加号 自己顶一下! 记号 标记 9325的主控 谢谢 下来 参考一下 楼主是否可以提供整个工程的文件?使用了您的库文件,总是Link出错阿! Building configuration: STM32Mini - BOOT_FLASH
Updating build tree...
SD_Driver.c
SD_User_API.c
main.c
sdcmd.c
Warning: variable "tmp" was set but never used F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\SD_Driver\src\sdcmd.c 681
sdcrc.c
sddriver.c
sdhal.c
Linking
Error: Undefined external "SPI_Init" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Error: Undefined external "SPI_Cmd" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Error: Undefined external "SPI_GetFlagStatus" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Error: Undefined external "SPI_SendData" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Error: Undefined external "SPI_ReceiveData" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Total number of errors: 5
Total number of warnings: 1 回24楼,你的问题是因为楼主使用ST的库文件为1.0版的,而你用的为新版的。主要是因为不同版本对库中函数定义不同
例如:
Error: Undefined external "SPI_GetFlagStatus" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
BOOT_FLASH\Obj\sdhal.r79 )
Error: Undefined external "SPI_SendData" referred in sdhal ( F:\W Display 测试系统板\STN测试系统\学习编程\STM32F-LCD\SKSTME32F-SDcard\project\EWARM\
"SPI_SendData"改为"SPI_I2S_SendData"
"SPI_GetFlagStatus"改为"SPI_I2S_GetFlagStatus"就可以了 问楼主: 你是如何把数据放入sd卡的? 【26楼】
直接写二进制数据,就是吧sd卡当作闪存芯片用。软件是用的FlexHEX Editor V2.5.0(代理服务器出问题了一直传不上来见谅!) 与lz讨论:
看了你的源文件,你所使用的sd卡部分应该来自英贝特,其中包含的的st库为1.0版本。我也下载了英贝特的资料调试可以通过,但是把st库文件升级为2.02后,sd卡读取失败,错误码0x34(?)单步调式时候发现问题
INT8U SD_ActiveInit(void)
{
INT8U param = {0,0,0,0},resp,ret;
INT32U i = 0;
do
{ /* 发出CMD1, 查询卡的状态, send CMD1 to poll card status */
ret = SD_SendCmd(CMD1, param, CMD1_R, resp);
if (ret != SD_NO_ERR)
return ret;
i ++;
SD_Sleep(1000000); //此句为我所加
}while (((resp & MSK_IDLE) == MSK_IDLE) && (i <= SD_IDLE_WAIT_MAX));
加入“ SD_Sleep(1000000); //此句为我所加”后可以通过,
故我猜测换用2.02的库后,读取速变快啦,
不知lz可有兴趣把st库升级一下试试看?
范例下载参考
http://www.realview.com.cn/down-list.asp?id=586 谢谢楼上的提醒!
因为1.0的库文件没有致命的Bug,所以一直没有更新。有点跟不上时代了:-)! 谢谢阿宽。
咦,问一句:阿宽的头像打功夫的小男孩是谁? 呵呵 有裤子过冬了!
是我小侄子!不过不是在“打功夫”,这家伙在我我跳舞勒,o(∩_∩)o... 记号 mark 学习了 thanks 请问楼主用的什么硬件啊,可以发你的硬件原理图上来吗?这样我们大家好对照学习啊,替大家谢过你了 楼主使用9325从SD读数刷屏能上多少帧?你用的SD卡是spi模式还是SD模式?我数据存在外部SPI FLASH中刷屏速度不理想,单色(不从外部取数据,感觉能上10帧)但是从SPI取数据时速度就慢了 大约只有2帧 stm32f103vbt 72Mhz,很想知道用spi接口的9325屏速度能上多少帧 俺也买了STM32,但调试不成功.
楼主的接线图能不能共享共享? 支持一个 小弟初学。请教一些基础问题?
对SD卡的操作想了解一些。请问楼主(强人),LCD要显示的图片,在SD卡内部是什么样的数据?是你使用取码软件提出来的代码?还是直接就是JPG,BMP,等这些文件?也就是说图片在SD卡中是什么格式?要是代码格式(0xf0这些代码)。那您是怎么放到SD卡内部的?
谢谢。 问题同上,请楼主请教 不过没有加文件系统显得有些打折扣了,楼主可以考虑把文件系统加进来。SD操作的那部分库文件里应该有,楼主还是完善一下吧 SD卡驱动是4bit做的吗? mark 顶起来,偶是新手也有45楼的疑问 mark 搜集资料 谢谢 楼主能给个联系方式不?QQ或手机
我QQ:460000425
万分火急,需要您的指教! mark. mark. 顶一个
顺便问一下
#define SPI_FLASH_PWR_OFF() GPIO_ResetBits(GPIOD, GPIO_Pin_10)
#define SPI_FLASH_PWR_ON() GPIO_SetBits(GPIOD, GPIO_Pin_10)
是不是搞反了,我用的STM3210B-LK1
栅极为低电平MOSFET才导通吧 呵呵,那天我也试试。 收录,谢谢楼主 mark,mark mark 顶顶 顶 mark 记下 下了,谢谢! mark 好!有点眉目 好资料 学习中! 路过,收集,学习! 学习 MARK 满好 回复【27楼】418425051 宽
【26楼】
直接写二进制数据,就是吧sd卡当作闪存芯片用。软件是用的flexhex editor v2.5.0(代理服务器出问题了一直传不上来见谅!)
-----------------------------------------------------------------------
请问软件是怎么下载到SD卡中的?我一用这个保存,就直接是文件形式了,这样就不能直接读出SD卡了吧?因为你没有上文件,而是直接读取的二进制数从SD卡中,是吧?
楼主能帮助回答一下吗? 最近正在研究,學習了 记号 mark MARK 多谢共享,来点说明更好 不错,硬软件全包! mark! 学习! 谢谢! mark 回复【12楼】armfans
-----------------------------------------------------------------------
屏幕的驱动函数里面有延迟函数,把延迟改小就行啦,我做的一个项目,每秒钟写一千次没问题(不是一千字节,是一千次类容显示) mark 谢谢 回复【楼主位】418425051 宽
-----------------------------------------------------------------------
mark!谢谢! 继续顶一下!! 收藏,学习 O(∩_∩)O谢谢楼主 顶一个,学习了 MARK 路过看看学习!! mark。。。。。。。。。。。。。。。。。。。。。。 我下MARK下,因为马上要使用单片机驱动SD卡,写TXT文档文件. 楼主辛苦 {:smile:}{:smile:} 收藏先!
页:
[1]