精华内容
下载资源
问答
  • 花了几天时间,原创移植完成。因为官方只有freertos的移植,要用ucosiii, 只有自己动手了,期间遇到许多次hardfault,终于完成了。扩充了串口调试,按键长按和短按,触屏点击功能。
  • µGUI is a free and open source graphic library for embedded systems. It is platform-independent and can be easily ported to almost any microcontroller system. As long as the ...STM32F429 Discovery
  • 这是一个简单的工具,旨在为STM32f429 Discovery板创建uClinux发行版。 STM32F429 MCU提供了以180 MHz运行的ARM Cortex M4内核(带有浮点单元)的性能,同时达到了相当低的静态功耗。 先决条件 构建器要求在构建...
  • LittleVGL (LVGL) STM32F429IGTx [使用野火STM32F429开发板] LVGL版本:v7.5 使用STD库 MDK-ARM Keil5集成开发环境 实现各小控件的演示 移植触摸以及LTDC驱动 800*480的RGB显示屏 已开启DMA2D 打印机例程因Flash内存...
  • 最的买了一个现成的STM32F429Discovery 开发板,想尝试一下较大点的嵌入式操作系统如RTEMS的移植与应用。因为有了STM32F10XX的基础,熟悉了硬件与固件库,STM32F429其实很容易入手。下面就先定时器中断点个LED试...
  • 本文介绍的是基于STM32F429Discovery设计的示波器,可以产生三角波、方波、正弦波等。 作品展示: 附件内容包括此示波器设计的源代码以及编译后的BIN文件。 注意:1.本附件内容有完整的例程,比较容易尝试。前提是需要...
  • 基于stm32f429-discovery 的usart2的测试程序,与stm32f103系列的相比,略有不同。注意使用固件库里的时钟设置问题,我这里为:8MHz外部晶振。 PLL_M = 8。
  • stm32f429i-discovery官方例程 例子。STM32F429I-DISCO
  • STM32F429DISCOVERY外接SD卡使用SDIO4BIT方式加载FATFS系统 平台:STM32CubeF4,版本1.3.0 第三方:FATFS0.10版本 说明:解决了用STM32CubeMX生成的代码无法加载FATFS系统的问题,源代码中有重要参数有详细说明,在...
  • STM32F429i 探索示例 示例 STM32F4 项目改编自示例并适用于板。 要求 arm-none-eabi 工具链
  • 基于STM32F429 Discovery 的RTEMS 4.11 移植源码。已经成功的跑起来了。可以继续修改并优化,并应用到实际的应用中。
  • STM32F429I-DISCOVERY是ST公司推出的基于STM32F429ZIT6的探索套件。套件外设丰富,并且将所有引脚均引出,极方便用户的拓展和探索高性能的Cortex-M4内核! 本设计是基于STM32F429I-DISCOVERY制作的DDS函数发生器,...
  • stm32f429-discovery.pdf

    2020-09-09 10:30:39
    stm32f429 discovery的用户指南,英文原版。
  • 对应discovery开发板的2.6的内核源码,下载后可以针对当前的开发版完整开发。默认支持了网口驱动,方便tftp的开发和调试。
  • STM32F429I-Discovery_FW_V1.0.1内有例程,模板
  • STM32F429 discovery 解决串口打印问题

    千次阅读 2018-05-10 14:20:12
    为利用USART 实现开发板与电脑通信,需要用到一个USB 转USART 的IC,我们选择CH340G 芯片来实现这个功能,CH340G 是一个USB 总线的转接芯片,实现USB 转USART、USB 转IrDA 红外或者USB 转打印机接口,我们使用其USB ...

    为利用USART 实现开发板与电脑通信,需要用到一个USB 转USART 的IC,我们选
    择CH340G 芯片来实现这个功能,CH340G 是一个USB 总线的转接芯片,实现USB 转
    USART、USB 转IrDA 红外或者USB 转打印机接口,我们使用其USB 转USART 功能。具
    体电路设计见图 20-11。
    我们将CH340G 的TXD 引脚与USART1 的RX 引脚连接,CH340G 的RXD 引脚与
    USART1 的TX 引脚连接。CH340G 芯片集成在开发板上,其地线(GND)已与控制器的
    GND 连通。

    这里只讲解核心的部分代码,有些变量的设置,头文件的包含等并没有涉及到,完整
    的代码请参考本章配套的工程。我们创建了两个文件:bsp_debug_usart.c 和
    bsp_debug_usart.h 文件用来存放USART 驱动程序及相关宏定义。

    GPIO 和USART 宏定义
    代码清单 20-1 GPIO 和USART 宏定义
    1 #define DEBUG_USART USART1
    2 #define DEBUG_USART_CLK RCC_APB2Periph_USART1
    3 #define DEBUG_USART_BAUDRATE 115200 //串口波特率
    4
    5 #define DEBUG_USART_RX_GPIO_PORT GPIOA
    6 #define DEBUG_USART_RX_GPIO_CLK RCC_AHB1Periph_GPIOA
    7 #define DEBUG_USART_RX_PIN GPIO_Pin_10
    8 #define DEBUG_USART_RX_AF GPIO_AF_USART1
    9 #define DEBUG_USART_RX_SOURCE GPIO_PinSource10
    10
    11 #define DEBUG_USART_TX_GPIO_PORT GPIOA
    12 #define DEBUG_USART_TX_GPIO_CLK RCC_AHB1Periph_GPIOA
    13 #define DEBUG_USART_TX_PIN GPIO_Pin_9
    14 #define DEBUG_USART_TX_AF GPIO_AF_USART1
    15 #define DEBUG_USART_TX_SOURCE GPIO_PinSource9
    16
    17 #define DEBUG_USART_IRQHandler USART1_IRQHandler
    18 #define DEBUG_USART_IRQ USART1_IRQn


    GPIO 和USART 宏定义
    代码清单 20-1 GPIO 和USART 宏定义
    1 #define DEBUG_USART USART1
    2 #define DEBUG_USART_CLK RCC_APB2Periph_USART1
    3 #define DEBUG_USART_BAUDRATE 115200 //串口波特率
    4
    5 #define DEBUG_USART_RX_GPIO_PORT GPIOA
    6 #define DEBUG_USART_RX_GPIO_CLK RCC_AHB1Periph_GPIOA
    7 #define DEBUG_USART_RX_PIN GPIO_Pin_10
    8 #define DEBUG_USART_RX_AF GPIO_AF_USART1
    9 #define DEBUG_USART_RX_SOURCE GPIO_PinSource10
    10
    11 #define DEBUG_USART_TX_GPIO_PORT GPIOA
    12 #define DEBUG_USART_TX_GPIO_CLK RCC_AHB1Periph_GPIOA
    13 #define DEBUG_USART_TX_PIN GPIO_Pin_9
    14 #define DEBUG_USART_TX_AF GPIO_AF_USART1
    15 #define DEBUG_USART_TX_SOURCE GPIO_PinSource9
    16
    17 #define DEBUG_USART_IRQHandler USART1_IRQHandler
    18 #define DEBUG_USART_IRQ USART1_IRQn

    1 static void NVIC_Configuration(void)
    2 {
    3 NVIC_InitTypeDef NVIC_InitStructure;
    4
    5 /* 嵌套向量中断控制器组选择 */
    6 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    7
    8 /* 配置USART 为中断源 */
    9 NVIC_InitStructure.NVIC_IRQChannel = DEBUG_USART_IRQ;
    10 /* 抢断优先级为1 */
    11 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    12 /* 子优先级为1 */
    13 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    14 /* 使能中断 */
    15 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    16 /* 初始化配置NVIC */
    17 NVIC_Init(&NVIC_InitStructure);
    18 }
    19





    展开全文
  • STM32F429 Discovery开发环境的构建包含如下4个大的步骤。 1.安装你喜欢的集成开发环境(IDE)主要有EWARM ,MDK-ARM ,TrueSTUDIO等这里以MDK-ARM为例。 注意STM32F429需要MDK-ARM 4.72或以后版本,这里以目前最新...

    STM32F429 Discovery开发环境的构建包含如下4个大的步骤。
    1.安装你喜欢的集成开发环境(IDE)主要有EWARM ,MDK-ARM ,TrueSTUDIO等这里以MDK-ARM为例。
    注意STM32F429需要MDK-ARM 4.72或以后版本,这里以目前最新的MDK-ARM 5.10版本为例。
      1.1 到网址https://www.keil.com/demo/eval/arm.htm 下载文件MDK_510.EXE (285,201K) 
      1.2 点击下载后的文件按通用过程按装,注意装完后在file-->Device Database里看不到器件,这是5.0版本与以前版本的不同,需单独按         装器件包。
           按装器件包有两种方法,一是下载单独的包文件.pack点击安装,包文件网址为:http://www.keil.com/dd2/Pack/
          一是通过IDE启动包安装器Pack Installer按装,启动方法为Project-->manage-->pack Installer。
    2.按装ST-LINK V2驱动, 在网址 http://www.st.com/web/en/catalog/tools/PF258167# 找到并下载
    3.下载 STM32F429I-Discovery 固件 ,在网址http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090
    4.链接板子和电脑,打开固件例子开始开发.........



    参考链接  Home

    展开全文
  • STM32F429discovery 显示初探

    千次阅读 2014-04-02 14:21:57
     拿到ST的板子,从官网上下载了最新的cube库,以前用过STM32F407discovery,觉得ST的库还是挺好用的,但是这次更新的cube库,不太熟悉,感觉略微混乱。自己新建了一个工程,把新的库函数移植进去,算是一个demo,...

             第一次写技术博客,记录我的学习历程,希望能和大家多交流,有些理解错误和不到位的地方,还恳请大家多多指导,谢谢!

            拿到ST的板子,从官网上下载了最新的cube库,以前用过STM32F407discovery,觉得ST的库还是挺好用的,但是这次更新的cube库,不太熟悉,感觉略微混乱。自己新建了一个工程,把新的库函数移植进去,算是一个demo,以后可以随时拷贝以及添加修改文件。

            以前没有写过屏幕的程序,所以首先打开官方的例程来看。...\STM32Cube_FW_F4_V1.1.0\Projects\STM32F429I-Discovery\Examples\LTDC\LTDC_Display_2Layers,这个工程实现的功能是在屏幕显示两张图片,上下各一张,然后让两张图片不停地相向运动。

            初始化函数是在main.c中定义的,初始化函数中,先是初始化ili9341(spi),然后设定屏幕的一些参数,再设定屏幕的两个图层,图层1在图层0上面,所以图层1在设置的时候Alpha设置的是200,貌似起一个有透明度的效果。图层初始化的时候,还涉及到设置窗口大小,frame buffer的地址(要显示的图片的地址),以及像素格式设置。关于这个例程,在初始化函数里面,没有找到初始化LTDC引脚的代码,所以怀疑他直接用spi来控制屏幕的,至于怎么去控制的,还不了解。

            之后看了看...\Examples\DMA2D里面的例程,感觉也差不多。在...\STM32F429I-Discovery\Applications\Display\LTDC_Paint里面找到一个工程,这是一个能在屏幕上画画并能将图像保存到优盘里的程序。当然现在先不用管USB以及触摸那一块,先把屏幕显示搞定了再说。试着把里面的代码移植到我的demo里面去。这个工程里的代码,使用的是stm32f429i_discovery_lcd.h里的函数来实现各个外设的初始化,BSP_LCD_Init()里,首先把设定LTDC的一些参数,其他例程的差不多,然后调用MspInit(),初始化LTDC的引脚,再调用BSP_SDRAM_Init(),初始化sdram和DMA2D。

            关于MspInit()这个函数,吐一下槽。在stm32f429i_discovery_lcd和stm32f429i_discovery_sdram两个文件里都有这个函数,不过都是在.c里声明的(应该算是一个private函数吧~),所以按理说lcd.c里的函数只能调用对应文件里的这个函数的。因为BSP_SDRAM_Init()(属于sdram.c)也会调用这个函数,所以就有问题了。在官方给的工程里面,lcd.c里的函数调用到了sdram.c里的这个函数,而sdram.c里的函数却调用lcd.c里的,不过还好能用。而我自己移植后的程序里,两次都调用到了sdram里的MspInit(),导致初始化失败。排查了各种设置,最后对比两个工程的执行过程,发现了这个问题。所以建议把两个文件里的这个函数名字都改一下~

            调用BSP_LCD_Init()的过程中,没有发现调用ili9341_Init(),所以更加觉得examples里面的屏幕是用spi来读写数据的~之后需要初始化图层了,由于lcd.h里只定义了BSP_LCD_LayerDefaultInit()来初始化图层,里面的一些参数设置与最开始建立的工程里的设置不一样,所以继续用main.c里自己写的函数初始化,把初始化函数里一开始的那些设置屏幕参数的代码删除掉,只保留图层设置的代码,然后又出问题了~最后找到的问题的原因,是因为一个结构体LtdcHandler,它是一个lcd.c里的全局变量,在BSP_LCD_Init()里初始化,在调用lcd.c里的其他函数时,都要用到这个结构体。在最开始建立的工程里的main.c里设置了一个名为LtdcHandle的全局变量给初始化使用,当我删除了初始化屏幕参数后,该结构体没有得到初始化,所以也就导致了图层初始化失败。最后我在lcd.c里新建一个函数来初始化图层,问题得到解决。

            lcd.c里的BSP_LCD_LayerDefaultInit()设置的像素格式是LTDC_PIXEL_FORMAT_ARGB8888,这导致了我显示RGB565格式的图片有问题,只能把这项参数改掉。通过BSP_LCD_SetLayerAddress(),可以显示想要显示的图片,但是这样用的话,该图层就没法画图和添加文字,要显示文字和实现画图功能,只能把该图层的地址设置为LCD_FRAME_BUFFER_LAYER1或者LCD_FRAME_BUFFER_LAYER0,这个是在main.h里定义的,

    而LCD_FRAME_BUFFER又定义在stm32f429i_discovery_lcd.h

    当图层的地址没有指向图片的时候,最好调用BSP_LCD_Clear()清除一下图层。

            由于文字和画图的代码里面的像素格式都是ARGB8888,最后还是只能把默认的像素格式换回去,然后自己在lcd.c里加了一个函数,void LTDC_SetPixelFormat(uint32_t Pixelformat, uint32_t LayerIdx),这个函数其实是调用stm32f4xx_hal_ltdc.c里的HAL_LTDC_SetPixelFormat(&LtdcHandler,Pixelformat,LayerIdx),涉及到了LtdcHandler这个结构体里的参数,所以在lcd.c里建立一个函数来实现像素格式的设定。

            因为液晶控制可以分为两层,两层有独立的数据空间,可以实现两层的混合或者独立显示,可以将图层1用来显示文字和画图,图层0用来显示图片,注意图片的数据格式一定要设置好哦~通过BSP_LCD_SetTransparency()可以设置图层的透明度;BSP_LCD_SetLayerVisible()可以设置图层是否显示;BSP_LCD_SetColorKeying()可以屏蔽掉设定的颜色......对于图层1,可以设置一个背景颜色,通过BSP_LCD_SetColorKeying()函数把这种颜色屏蔽掉,从而实现上面层清晰的显示文字和作图、下面层清晰显示图片--的功能~如果只是设置透明度,下面层始终会被上面层的颜色影响到,看到的图片也会很朦胧~~~

            我大概就学到了这么多,表述能力不怎么好,有些地方没有描述清楚,希望大家互相帮助,共同进步~有问题的地方,请不吝赐教~

    
    
    
    展开全文
  • STM32F429I Discovery板程序完整版,可供大家参考。。
  • 后来查看原理图,原来STLink V2有引脚与PA9 PA10连接。应该是USB转串口吧,因此,再把USB-TTL 接到PA9 PA10上,就会发生 两个TXD->TXD相互干扰的现象,因此不通!!我这里直接去掉连接的短接电阻,程序正常了。
  • 可以在trueSTUDIO上运行的DEMO,带有FreeRTOS,已经编译通过,可直接烧录到STM32F429官方评估板。
  • mearm-stm32f429i 从STM32F429I-DISC1板上控制MeArm机械臂(Kitronik MeArm Classic Maker Kit)。 项目是用TouchGFX和STM32CubeIDE制作的。 目录 基本信息 该项目的目标是为MeArm机械手臂创建界面。 我选择了带...
  • stm32f429的uboot程序

    2020-12-28 11:02:02
    具体描述看我的博客:https://blog.csdn.net/qq_40525440/article/details/111831626
  • stm32f429discovery的USB_HID移植

    热门讨论 2014-12-01 12:57:42
    stm32f429discovery板上移植USB_HID库 在stm32f429discovery板上移植USB_HID库
  • STM32F429 Discovery FMC驱动原子4.3寸LCD

    千次阅读 2015-04-25 19:36:19
    本人手里有块STM32F429 Discovery板子,因为某种原因需要使用8080接口的LCD,而该块开发板自带的LCD接口采用LTDC驱动,所以就在正点原子这里买了一块4.3寸电容触摸屏,驱动IC为NT35510。 为了快速搭建软件工程,...
        本人手里有块STM32F429 Discovery板子,因为某种原因需要使用8080接口的LCD,而该块开发板自带的LCD接口采用LTDC驱动,所以就在正点原子这里买了一块4.3寸电容触摸屏,驱动IC为NT35510。
    
        为了快速搭建软件工程,本人使用STM32CubeMX工具生成代码模板,并编写了lcd.c和nt35510.c两个文件,代码如下:

    lcd.c

    typedef struct _LCD_DRV{
    	uint32_t (*checkid)(void);
    	void (*init)(void);
    	void (*setpixel)(uint16_t color, uint16_t x, uint16_t y);
    	void (*fillrect)(uint16_t color, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
    	void (*bitmap)(uint16_t color[], uint16_t x0, uint16_t y0, uint16_t width, uint16_t height);
    	void (*clear)(uint16_t color);
    	int (*ioctrl)(uint32_t cmd, uint32_t param);
    	uint16_t (*getpixel)(uint16_t x, uint16_t y);
    }lcd_drv_t;
    
    const lcd_drv_t* lcd_module[] = {
    	&nt35510_module,
    	&st7789v_module,
    	/*any other lcd module*/
    };
    
    const lcd_drv_t *lcd_drv = 0;
    
    void LCD_GPIO_Cfg(void)
    {
    	/*由于FMC的GPIO已由CubeMx自动配置,所以这里只设置RESET引脚*/
    	
      	GPIO_InitTypeDef GPIO_InitStruct;
    
    	GPIO_InitStruct.Pin = GPIO_PIN_0;
    	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    	GPIO_InitStruct.Pull = GPIO_PULLUP;
    	GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
    	HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    }
    
    void LCD_FMC_Cfg(void)
    {
    	/*
    		由于STM32 CubeMx已自动生成相关FMC配置的代码,
    		所以这里就无需额外设置
    	*/
    }
    
    
    void LCD_Reset(void)
    {
    	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
    	delay_ms(100);
    	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
    	delay_ms(100);
    	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
    	delay_ms(100);
    }
    
    
    uint8_t LCD_CheckID(void)
    {
    	uint32_t id;
    	int i;
    	
    	for(i = 0; i < (sizeof(lcd_module) / sizeof(lcd_module[0])); i++)
    	{
    		id = lcd_module[i]->checkid();
    		if(0 != id)
    		{
    			printf("Found ID: %x\r\n", id);
    			lcd_drv = lcd_module[i];
    			return 1;
    		}
    	}
    	
    	return 0;
    }
    
    void LCD_Init(void)
    {
    	LCD_GPIO_Cfg();
    	LCD_FMC_Cfg();
    	LCD_Reset();
    	if(LCD_CheckID())
    	{
    		lcd_drv->init();
    	}
    }
    
    void LCD_DrawPixel(uint16_t color, uint16_t x, uint16_t y)
    {
    	if(lcd_drv)
    		lcd_drv->setpixel(color, x, y);
    }
    
    void LCD_FillRect(uint16_t color, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1)
    {
    	if(lcd_drv)
    		lcd_drv->fillrect(color, x0, y0, x1, y1);
    }
    
    void LCD_DrawBitmap(uint16_t color[], uint16_t x0, uint16_t y0, uint16_t width, uint16_t height)
    {
    	if(lcd_drv)
    		lcd_drv->bitmap(color, x0, y0, width, height);
    }
    
    void LCD_Clear(uint16_t color)
    {
    	if(lcd_drv)
    		lcd_drv->clear(color);
    }

    要注意的是,如果你是使用的正点原子的模板或是自己搭建的模板,则需要实现LCD_GPIO_Cfg()及LCD_FMC_Cfg()两个函数,由于STM32CubeMX在配置GPIO及FMC时,已经自动生成了相应的代码,所以这里为空。另外,我的硬件上是将LCD_RS接在了 FMC_A0上的,所以LCD_DATA的地址为0x6C000002,请针对于自己的硬件自行修改。

    void NT35510_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue)
    {	
    	LCD_WR_REG(LCD_Reg);
    	LCD_WR_DATA(LCD_RegValue);
    }	   
    
    uint16_t NT35510_ReadReg(uint16_t LCD_Reg)
    {										   
    	LCD_WR_REG(LCD_Reg);		//写入要读的寄存器序号
    	delay_us(5);		  
    	return LCD_RD_DATA();		//返回读到的值
    }   
    
    //开始写GRAM
    void NT35510_WriteRAM_Prepare(void)
    {
    	LCD_WR_REG(0X2C00);
    }	 
    
    
    void NT35510_DisplayOn(void)
    {					   
    	LCD_WR_REG(0X2900);	//开启显示
    }	 
    
    void NT35510_DisplayOff(void)
    {	   
    	LCD_WR_REG(0X2800);	//关闭显示
    }   
    
    
    void NT35510_SetWindow(uint16_t x0,uint16_t y0,uint16_t x1,uint16_t y1)
    {   
    	NT35510_WriteReg(0x2A00, x0 >> 8);  
    	NT35510_WriteReg(0x2A01, x0 & 0XFF);	  
    	NT35510_WriteReg(0x2A02, x1 >> 8);   
    	NT35510_WriteReg(0x2A03, x1 & 0XFF);   
    	NT35510_WriteReg(0x2B00, y0 >> 8);   
    	NT35510_WriteReg(0x2B01, y0 & 0XFF);  
    	NT35510_WriteReg(0x2B02, y1 >> 8);   
    	NT35510_WriteReg(0x2B03, y1 & 0XFF);  
    } 
    
    
    void NT35510_DrawPixel(uint16_t color, uint16_t x, uint16_t y)
    {
    	NT35510_SetWindow(x, y, x, y);		//设置光标位置 
    	NT35510_WriteRAM_Prepare();	//开始写入GRAM
    	LCD_WR_DATA(color); 
    }
    
    
    //清屏函数
    void NT35510_Clear(uint16_t color)
    {
    	uint32_t i;      
    	
    	NT35510_SetWindow(0, 0, Width - 1, Height - 1);
    	NT35510_WriteRAM_Prepare();     		 
    	for(i = 0; i < Width * Height; i++)
    	{
    		LCD_WR_DATA(color);		
    	}
    }  
    
    
    uint32_t NT35510_CheckID(void)
    {
    	uint8_t id1, id2, id3;
    	
    	id1 = NT35510_ReadReg(0XDA00);	//should be 0x00
    	id2 = NT35510_ReadReg(0XDB00);	//should be 0x80
    	id3 = NT35510_ReadReg(0XDC00);	//should be 0x00
     	printf(" Read ID:%x, %x, %x\r\n", id1, id2, id3);  
    	
    	if((id1 == 0x00) && (id2 == 0x80) && (id3 == 0x00))
    		return 0x35510;
    	else
    		return 0;
    }
    
    
    void NT35510_Init(void)
    { 										  
     	delay_ms(50);
     	NT35510_WriteReg(0x0000,0x0001);
    	delay_ms(50);  
    		
    	NT35510_WriteReg(0xF000,0x55);
    	NT35510_WriteReg(0xF001,0xAA);
    	NT35510_WriteReg(0xF002,0x52);
    	NT35510_WriteReg(0xF003,0x08);
    	NT35510_WriteReg(0xF004,0x01);
    	
            ......
    }
    
    void NT35510_FillRect(uint16_t color, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1)
    {          
    	uint32_t i;
    	uint16_t width, height;
    
    	width = x1-x0+1;
    	height = y1-y0+1;
    	
    	NT35510_SetWindow(x0, y0, x1, y1);
    	NT35510_WriteRAM_Prepare();
    	for(i = 0; i < width * height; i++)
    	{
    		LCD_WR_DATA(color);	   
    	}
    }  
    
    //位图显示函数,位图中每个像素大小为16bit,高字节在前低字节在后
    void NT35510_DrawBitmap(uint16_t color[], uint16_t x0, uint16_t y0, uint16_t width, uint16_t height)
    {
    	uint32_t i;
    	uint16_t x1, y1;
    
    	x1 = x0 + width - 1;
    	y1 = y0 + height - 1;
    
    	NT35510_SetWindow(x0, y0, x1, y1);
    	NT35510_WriteRAM_Prepare();
    	for(i = 0; i < width * height; i++)
    	{
    		LCD_WR_DATA(color[i]);
    	}	
    }
    
    
    int NT35510_IOCtrl(uint32_t cmd, uint32_t param)
    {
        switch(cmd)
        {
        case LCD_CMD_SLEEP_IN:
            break;
    
        case LCD_CMD_SLEEP_OUT:
            break;
    
        case LCD_CMD_SET_DIR:
            break;
    		
        default:
            break;
        }
    	return 0;
    }
    
    
    const lcd_drv_t nt35510_module = {
    	NT35510_CheckID,
    	NT35510_Init,
    	NT35510_DrawPixel,
    	NT35510_FillRect,
    	NT35510_DrawBitmap,
    	NT35510_Clear,
    	NT35510_IOCtrl
    };
    

    工程源码请见附件: 点击打开链接

    实验效果图片如下:




    展开全文
  • stm32f429discovery的USB_HID应用笔记

    千次阅读 2014-12-01 10:51:28
    刚开始打算在discovery板子上移植USB官方库时候是想用全速模式的,折腾了半天没反应,后来看原理图时发现全速模式的两引脚接到仿真器上去了,没办法只能采用在高速口下配置成全速模式的方法,不过移植起来也算方便,...
  • 基于stm32f429芯片,在野火开发板上实现红禄蓝3色LED灯的流水灯延时闪烁效果,已附上完整文件,可直接在KEIL上编译下载,代码逻辑清晰,易于后续开发
  • 再放一个 stm32f4 discovery 的一部分原理图 我手头有一个j-link 所以打算用SWD那排引脚进行烧录 找到了各引脚的定义 与st-link进行对比 然后得知对应关系为 T_JTCK–TCK T_JTMS–TMS T_
  • 可以烧写到stm32f429-discovery开发板中的linux系统。
  • STM32F429I-Discovery学习笔记–(1)简单上手和官方例程的下载与使用 到手测试 收到开发板后我们要首先检查一下外观有没有磕碰破损,排针是否发生弯折,重要的是看一下JP3和CN4处的跳线帽是否连接。 当检查完毕后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,386
精华内容 554
关键字:

stm32f429discovery