-
最近学ARM也有很多问题很困惑
-
此函数为此驱动卡的gui程序,没有用到库,很适合大家进一步改写。
开发过程为以下几步:
(1)修改LCDConf.h 头文件的设置,因为此tft为800*480,所以修改LCD_XSIZE 、LCD_YSIZE为800、480。tft初始化函数改为:#define LCD_INIT_CONTROLLER() LCD_Init0();
(2)修改tft底层驱动:修改LCDDriver文件夹中的ili9320.c文件,因为咱们已经换了TFT,所以底层驱动得换掉,把之前已经点亮过的tft的底层驱动粘贴到此。自然最重要的是点写入函数void Write_Dot_LCD(int x,int y,u16 Color)。
(3)修改ucgui与底层驱动函数的连接文件ili9320_ucgui.c,也就是把此函数中凡是用到的写点函数都改为void Write_Dot_LCD(int x,int y,u16 Color)即可。
(4)修改Source->BSP中的bsp.c文件,其中有个void BSP_Init(void)函数,在初始化时会用到,加入LCD_Init0()函数与其中,在启动初始化时初始化tft驱动卡,这点很重要。
到此ucgui就能全部移植到7寸屏上,并且是无库demo版,很多人都习惯把ucgui编译成库,这样的好处是节省了编译时间,但移植性就不是很好,在同类型的tft上是行的,现在把demo版公布出来了,也是为了方便初学者上手方便,少走弯路。如果要修改屏幕显示尺寸的话,只要修改LCD_XSIZE 、LCD_YSIZE,绝对没有问题,一定要记住改底层驱动,就拿我这个板子来说,可以改变界面任意尺寸的显示效果,只要保证底层驱动LCD_CONFIG.h中的LCD_X_MAX、LCD_Y_MAX 和系统配置文件LCDConf.h中的LCD_XSIZE 、LCD_YSIZE相一致即可。
uCOS+uCGUI(FSMC).rar (2.13 MB)
下载次数:84
2010-12-15 15:03
-
什么型号?
-
看完这些天就亮了,呵呵
-
贴上 定时器配置代码,系统中断C例程汇编接口部分,尤其是执行OSIntExit部分代码,一般会在汇编部分调用OSIntExit();EIC->IPR是否清掉
-
mark
-
路过~~~~~~~~~~·顶之
-
引用 13 楼 icomputerlion 的回复:
我所恼火的不在于他 复杂性,而在于 他今天让用这个 明天让用那个 结果搞半天 你不知道 到底该用哪个
搞个不算什么事情的小项目,结果 你得把MSDN翻研究N天
总比没什么东西可以看,没有东西可以参考强。项目虽小,五脏俱全;难者不会,会者不难。:P
-
IF BSP_POCKETMORY
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk]
"Prefix"="DSK"
"Dll"="ONDisk.dll"
"Order"=dword:1
; "Index"=dword:2
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Profile"="FlashDisk"
"BmlVolumeId"=dword:0 ; BML volume ID = 0
"BmlPartitionId"=dword:8 ; BML parition ID = PARTITION_ID_FILESYSTEM
"WMRStartSector"=dword:0
"WMRNumOfSector"=dword:40000 ;ffffffff;10000 ; 32MByte
; "Flags"=dword:1000 ;HIVE
; "Flags"=dword:11000 ; do not load again in boot phase 2 ;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"Name"="PocketMory MLC Disk"
"Folder"="DISK1"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"MountFlags"=dword:0 ;0:RAM 11:HIVE
; "MountFlags"=dword:11 ;0:RAM 11:HIVE
; "Ioctl"=dword:4
"MountHidden" = dword:1 ;;增加这个选项可以隐藏ResidentFlash
"MountPermanent" = dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
"FriendlyName"="PocketMory FAT FileSystem"
"Dll"="fatfsd.dll"
"Flags"=dword:00000014 ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
"FormatTfat"=dword:1
"EnableCacheWarm"=dword:0
; "MountFlags"=dword:2 ;HIVE
; mounts the first FATFS partition on a storage device
"MountAsRoot"=dword:1
"MountAsBootable"=dword:1
"MountPermanent"=dword:1
;;----------------------------------------------------------------------------
;; 2nd FAT Area
;;----------------------------------------------------------------------------
;
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk1]
"Prefix"="DSK"
"Dll"="ONDisk.dll"
"Order"=dword:1
; "Index"=dword:1
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Profile"="FlashDisk1"
"BmlVolumeId"=dword:0 ; BML volume ID = 0
"BmlPartitionId"=dword:9 ; BML parition ID = PARTITION_ID_FILESYSTEM1
"WMRStartSector"=dword:40001
"WMRNumOfSector"=dword:ffffffff ; last location
; "Flags"=dword:1000 ;HIVE
; "Flags"=dword:11000 ; do not load again in boot phase 2 ;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1]
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"Name"="PocketMory MLC Disk1"
"Folder"="Local Diskc";"DISKC"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
; "MountFlags"=dword:0 ;0:RAM 11:HIVE
; "MountFlags"=dword:11 ;0:RAM 11:HIVE
; "Ioctl"=dword:4
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
"FriendlyName"="PocketMory FAT FileSystem1"
"Dll"="fatfsd.dll"
"Flags"=dword:00000014 ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
"FormatTfat"=dword:1
"EnableCacheWarm"=dword:0
; "MountFlags"=dword:2 ;HIVE
; mounts the first FATFS partition on a storage device
; "MountAsRoot"=dword:1
; "MountAsBootable"=dword:1
; "MountPermanent"=dword:1
ENDIF ;BSP_POCKETMORY
-
我晕掉了,直接把看门狗关掉也是可以达到实验效果的,根本不需要什么灯
-
忘了说了,晶振是11.0592。这个故障还很奇怪,我发送的数据都是十六进制“60 61 62 63 64 65 66 67 68 69 70”不变,当我把TH1和TL1设为fa时单片机波特率应该是9600,可收到的数据是“20 18 E6 C0 D8 E0 1E FE”或“20 F8 C0 D8 E0 1E FE”,而把TH1和TL1设为fb时单片机的波特率应该就不是9600了,可是收到“60 0E 6C 9C F2 1E EC”或者“60 1E 9C EE EE 6E 80”,其中第一个对的。另外不知大家发现没有,我发送的数据一共是11个,但不管怎么设都只能收到8个或7个数据,我个人怀疑是第一个以后的数据在传输过程中丢失或者上位机与下位机的译码方式不一致。至于起因可能就是楼上说的缓冲区问题,不知大家是什么意见。
另外楼上的xmjulytiger大哥提到建缓冲区,我想问一下这缓冲区怎么建呢?用汇编语言便能实现吗?
-
学习学习·捞分·····
-
曙海培训还行的,我朋友说的,他去培训了dsp6000,还有个达芬奇培训,老师很专业的
-
用232这样简单的通信方式的话,可以不写驱动,只写解包这块的程序。
前提是PC作为主机去轮询所有信号接收器。
但是如果是多路信号主动同时进来的话,单个232接口无法实现。
-
是C吗???用fopen
-
我才知道原来direct draw是可以解码的,楼主你让我涨见识了。。
-
学习。
-
引用 7 楼 veabol 的回复:
想要自己检验的话就要看了BIN文件的解析格式了,PUBLIC下的BLCOMMON.C文件里有。
veabol兄,
BLCOMMON.C这个文件,有我出错的打印信息
ERROR: Checksum failure
BLCOMMON.C这个文件的Checksum部分代码,如果被修改的话,是否会出现类似的错误?
如果没有修改BLCOMMON.C文件,导致出错的原因大概会是什么能
我自己已经排除了物理上面的原因,是否还与哪部份的代码有关??
-
把那几个控件删除。。再重新做一下。。
clean
rebuild
-
顶下