datasheet

STM32F429DISCO与STemWin开发备忘

2019-08-15来源: eefocus关键字:STM32F429DISCO  STemWin  开发备忘

一、emWin模拟器的使用


把例程排除掉,再把自己需要的代码添加进去编译,就可以了


官方的例程都十分给力

我自个也弄了一个


开发十分方便。




二、测试过程中遇到的一些问题总结


1)429disco的LCD坐标是这样的

触摸屏的坐标是这样的

这意味着界面的emWin的LCDconf要做一些改动,还有触摸屏驱动函数也有小小的改动。




2)emWin中屏幕的旋转,例程的竖屏改为横屏


A.硬件LTDC初始化中,不要进行改动,依旧使用例程里的x=240,y=320。


B.LCDconf中,#define XSIZE_PHYS 240  #define YSIZE_PHYS 320 也是不需要改的,因为ili9341就是240x320的,假如把以上的两个x y改动,屏幕就花屏了(改动其实是可以实现的,猜测是需要改动ili9341里的某些寄存器)


C.通过改动LCDconf中的一些宏就可以把屏幕转过来。


无效!


无效!


有效!


之所以前两个宏无效,是由于stemwin是由lib递交给我们的,不是源代码,所以前两个方式不好使,第三个方法是有效的,是将默认的GUIDRV_LIN_16改为GUIDRV_LIN_OSX_16,屏幕就变成我想要的方向了。


3)stemwin的触摸屏工作原理


typedef struct {

  int x,y;

  U8  Pressed;

  U8  Layer;

} GUI_PID_STATE;


通过GUI_TOUCH_StoreState()或GUI_TOUCH_StoreStateEx()对上面的结构体定期录入,即可实现触摸屏的状态录入,录入后的工作就交给emwin自己处理了,我们只需要在相应的控件回调函数中补入自己想要的功能就行,很方便。


通过定期录入上面的结构体(轮询xtimer,或中断都可以),emwin可以通过上图很明显的识别出触摸的状态。


(在调试过程中,曾经在竖屏情况下,出现只识别clicked,不能识别released的情况,没去深究)




4)调试过程中假如出现莫名卡死的情况,可能是下面的原因:


A.这里设小了,要根据GUI的大小,设定合适的缓存(多大多小,我也在学习中)


#define GUI_NUMBYTES  (1024) *  20

B.RTOS中分配的空间太小,也会死。

xTaskCreate(Bling14, "Bling 14", 2048, NULL, 2, &tidBling14);


emwin+FreeRTOS很好很强大,完。


关键字:STM32F429DISCO  STemWin  开发备忘

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic471204.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32与FreeRTOS学习备忘,xSemaphoreGiveFromISR
下一篇:STM32待机模式Standby Mode与ADC DMA模式测试备忘

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F429-DISCO上手,stm32cubeMX与IAR学习,中断及Printf

stm32f429及stm32f439已经带有LTDC控制器,意味着可以输出RGB888及RGB565的图像信号,这与以往的单片机CPU8080接口LCD有很大不同,也是入手STM32F429-DISCO的原因,价格不贵,mouser上不含税150,淘宝180,非常适合学习。STM推出了一个叫STM32CUBEMX的软件,可以用来配置将要用到的模块,配置时钟树,输出源文件,相当给力。(不过貌似也有童鞋说坑,个人觉得挺好用的)芯片选型后配置JTAG(SWD),一个HSE(8MHz),两个GPIO_OUT,一个GPIO_IRQ(都是板子上有的东西)配置时钟树,有问题的会自动标成红色,特别要记下的就是SYSCLK(系统时钟),没什么好说
发表于 2019-08-15
STM32F429-DISCO上手,stm32cubeMX与IAR学习,中断及Printf

STM32F429DISCO+AT070TN92 7寸LCD

stm32f429 + sdram + at070tn92 这方案早就有牛人做出来了,x宝一搜就有。不过用STM32F429-DISCO直接飞线AT070TN92也是可以的哦!由于tn92需要的电源有点多,而且fpc50pin也必须使用pcb引线出来,所以做一块电源连接板是必须的,板子10片50块钱+tps61040+fpc+xpt2046,加起来60来块钱,够廉价吧。效果很给力哦stm32f429disco不用拆,直接用杜邦线飞出来就好,连接板还做了LAN8720和SD卡模块,以后有空也飞到DISCOVERY上耍耍。开发备忘:1.TN92的时钟为33Mhz,开发板的2.4寸LCD用的是6Mhz,假如TN92用6Mhz的DCLK
发表于 2019-08-15
STM32F429DISCO+AT070TN92 7寸LCD

STM32F4-DISCO 学习之DMA双缓冲机制

; DMA_InitStructure.DMA_Channel = DMA_Channel_7;    DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART3->DR; //数据传输的外设首地址    DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)Buffer0; //自己定义待发送数组的首地址,要强制转换为32位    DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; //数据传输方向选择为内存->外设 
发表于 2018-09-20

stemwin 19264单色屏移植

; PortAPI.pfReadM16_A1  = LcdReadDataMultiple;//  GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);}五.添加 GUI_X_FreeRTOS.C 因为使用的freertos 所以需要添加STemWinLibrary522OS目录下的GUI_X_FreeRTOS.C 六.添加stemwin库  STemWin522_CM4_OS_Keil.lib  
发表于 2019-06-01

stemwin 实体键使用GUI_SendKeyMsg发送消息卡死的问题

解决移植单色屏时使用了实体键发送窗口处理消息时导致卡死。在操作实体键时发送对应的消息,用到最多的是GUI_SendKeyMsg(GUI_KEY_TAB,1); //制表键,可以用来切换焦点聚焦到不同的小工具上。期间操作按键发送TAB消息时发现总是进入HardFault_Handler,但是放在emwin窗口定时里面发送TAB消息就不会进入HardFault_Handler。怀疑和KEY任务有关系,在key任务调用GUI_SendKeyMsg时由于KEY任务堆栈太小导致卡死,加大KEY任务堆栈后在点击按键dia发调用GUI_SendKeyMsg发送TAB消息时就不会卡死。同样之前也遇到过通过按键发送GUI_KEY_UP
发表于 2019-06-01

stemwin 19264液晶屏底层驱动编写

使用stemwin会使开发界面编的简单快捷。对于单色屏19264只需要编写打点和获取点这两个函数。19264在Y方向显示上使用分页显示,即有8页 192列,所以在编写dadi大点函数时最简便的方法就是分配一块显示hua缓存,所有数据的显示都通过操作这块现存来实现。下面贴出代码方便以后查看 //定义显示缓存64行192列 由于64行 必须同时操作一页所以数组定义64/8页char g_arrDispBuf[64/8][192]={0,};const uint8_t aOrTab[8]  = {0x01, 0x02, 0x04, 0x08,0x10,0x20,0x40,0x80};const uint8_t
发表于 2019-06-01

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved