自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (14)
  • 收藏
  • 关注

转载 Stm32的TFT LCD显示器控制学习笔记

学习stm32,TFT LCD显示屏控制是很重要的一章,本人在初步学习STM32遇到了很多困难,所以把学习中积累的部分感觉重要的知识点罗列出来。目前常用的TFT液晶内部驱动芯片是ILI9320,ILI9325系列,内部原理基本一致,我用的是ILI9320。用stm32驱动液晶,实际上就是驱动ILI9320芯片。点亮TFT LCD的具体步骤有:(1)stm32与ILI9320芯片管脚的初始化。...

2017-09-28 21:37:41 7277 1

转载 LCD接口总结

一般的嵌入式工程中,都会用到人机界面,随着技术的发展,LCD屏价格的降低,LCD在嵌入式显示中应用越来越多。本文对常用的LCD接口做一简单的总结。 LCD接口模式众多,主要有MCU模式、RGB模式、SPI模式、VSYNC模式、MDDI模式。  1、MCU模式:     目前最常用的连接模式,包括80、68(80模式和6800模式)、串行,一般是80系统(68系统已经不存在了)。...

2017-09-28 21:37:07 618

转载 TFT显示屏参数设置

1、在s3cfb_WXCAT43.c (linux2.6.28\drivers\video\samsung)文件中是有关具体显示器的设置。我们一段一段来看。#include <linux/wait.h>#include <linux/fb.h>#include <linux/delay.h>#include <linux/platform_dev...

2017-09-28 21:35:52 3855

转载 FSMC+LCD

关于FSMC+LCD第一次学习完时候,自己也还是对这个不清不白,时而清楚,时而糊涂。这一次再次学习的话,不能在这样了,仔仔细细把STM32参考手册,原子的LCD实验看了一遍,又在网上找了好些关于FSMC+LCD的资料,终于彻底明白了,,,当然,叫我完全一个人独立的把这个LCD显示实验程序写出来还是不可能的,C语言还是有待提高,实战还是太少,看到别人写的代码,有些细节根本一点都想不到,更何况让自己去...

2017-09-28 21:34:40 675

转载 LCD简介

LCD的原理:我们在液晶面板后面加白光(即背光板),然后通过不同的电信号,令液晶分子选择性透光,这样液晶面板就显示出了不同的颜色。 不难得出结论,LCD本身只会透光,不会发光。亮度控制是由背光板负责的。 当前主流的LCD是TFT,特点是超薄、清晰。1.LCD的信号 对于嵌入式设备来说,最普遍的就是RGB信号 VD:数据信号,用来传输图像信息 HSYNC:帧同步信号,每发...

2017-09-28 21:33:45 1488

转载 STM32学习笔记——TFT2.4彩屏显示图片

STM32学习笔记——TFT2.4彩屏显示图片     利用彩屏显示图片需要先完成彩屏的驱动程序,然后在驱动程序的基础上再编写应用程序。彩屏的驱动程序如果写好的话,就可以一直使用了,精力主要集中在应用程序的编写就可以了,但是移植的话,要移植驱动程序。其实移植也只是改变那些很底层的靠近处理器的那部分代码。 因为STM32F103C8的片上只有64K的FLASH,所以不...

2017-09-28 21:32:42 14217 1

转载 TFTLCD原理与驱动与指令介绍

一,TFTLCD简介TFTLCD : 薄膜晶体管液晶显示器在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT) 克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,提高图像质量TFTLCD优点: 亮度好,对比度高,层次感强,颜色鲜艳,是目前最主流的LCD显示器 广泛用于电视,手机,电脑,平板等各种的电子产品二,ALINETEK 2.8寸 TFTLCD模块介绍...

2017-09-28 21:32:00 8597

转载 RGB接口和MPU接口区别

 RGB接口和MPU接口区别MCU屏:/RES , /CS , RS , /WR , /RD , DB0 ~ DB17   (18bit)RGB屏:/E , VSYNC , HSYNC , CLK ,  R0~R5 , G0~G5 , B0~B5 (18bit) LCD MPU interface & RGB interfaceMCU模式:目前最常用的连接模式,一般是...

2017-09-28 21:30:24 9427 3

转载 LCD驱动中pixclock的计算

在LCD驱动程序中,需要我们根据LCD datasheet来设置相应的参数,这些参数包括:pixclock,left_margin,right_margin,upper_margin,lower_margin,hsync_len,vsync_len,VBP,VFB,VSPW,HBP,HFP,HSPW。下图是典型的TFT LCD时序图:    __u32 pixclock; /*像素时钟(皮...

2017-09-28 21:28:44 423

转载 TFT LCD 的 vsync,hsync,hspw,hbpd,hfpd, vspw,vbpd, vfpd 等参数的理解

这网站有更详细更权威的描述: http://www.linux-fbdev.org/HOWTO/2.html    这些参数都是由以前的 CRT(阴极射线显像管)带过来的, 而 TFT 液晶跟 CRT 显示方法根本不同, 至于为什么这些参数也会引入到 TFT 中, 我也不知道.要理解这些参数, 得以 CRT 显示器的显示方法来理解.CRT 侧面看是个漏斗状的真空的东东, 根部就是电子枪...

2017-09-28 21:27:35 4241

转载 MFC的消息机制

今天重新整理MFC的消息机制,最终的结果应该是利用win32程序模拟一个MFC的消息链。1.标准消息 除WM_COMMAND之外,所有以WM_开头的消息。 从CWnd派生的类,都可以接收到这类消息。 2.命令消息 来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数...

2017-09-22 16:59:38 223

转载 MFC六大核心机制之五、六:消息映射和命令传递

作为C++程序员,我们总是希望自己程序的所有代码都是自己写出来的,如果使用了其他的一些库,也总是千方百计想弄清楚其中的类和函数的原理,否则就会感觉不踏实。所以,我们对于在进行MFC视窗程序设计时经常要用到的消息机制也不满足于会使用,而是希望能理解个中道理。本文就为大家剖析MFC消息映射和命令传递的原理。       理解MFC消息机制的必要性       说到消息,在MFC中,“最熟悉的神...

2017-09-22 16:58:24 274

转载 MFC 消息机制 AfxWndProc->AfxCallWndProc->WindowProc->OnWndMsg

1、MFC窗口如何与AfxWndProc建立联系。当一个新的CWnd派生类创建时,在调用CWnd::CreateEx()过程中,MFC都会安装AfxCbtFilterHook()。这个Hook将拦截HCBT_CREATEWND,将窗体的消息处理函数设置为AfxWndProc()。   [cpp] view plaincopy// wincore.cpp 651   // ...

2017-09-22 16:58:17 2310

转载 MFC 串口编程

在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。实际工作中利用串口完成通信任务的时候非常之多。已有一些文章介绍串口编程的文章在计算机杂志上发表。但总的感觉说来不太全面,特别是介绍32位下编程的更少,且很不详细。笔者在实际工作中积累了较多经验,结合硬件、软件,重...

2017-09-22 16:55:38 337

转载 形象解释PID算法+PID算法源代码

小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。 小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是...

2017-09-22 16:49:07 2851 1

转载 Linux 多线程调试(内存占用、死循环、CPU占用率高……)

你的软件在某个时刻停止服务,CPU占用达到100%+,这种问题一个可能的原因是产生了死循环,假设程序某处存在潜在的死循环,并在某种条件下会引发,本文以一个示例来定位出现死循环的位置。当程序某处存在死循环,通常定位问题及缩小范围的方法是,在可疑的代码处加log,或者注释掉可疑代码,这对于容易重现问题的程序来说还好,但对于“偶尔”才会产生问题程序却很难调试,因为我们很难重现程序故障。本文所述的调试

2017-09-22 16:43:10 750

转载 linux下C实现多线程

什么线程池,为什么要使用线程池?下面是一个比喻。阶段一、一个医院,每天面对成千上万的病人,处理方式是:来一个病人找来一个医生处理,处理完了医生也走了。当看病时间较短的时候,医生来去的时间,显得尤为费时了。阶段二、医院引进了线程池的概念。设置门诊,把医生全派出去坐诊,病人来看病先挂号排队,医生根据病人队列顺序依次处理各个病人,这样就省去医生来来去去的时间了。但是,很多时候病人不多,医

2017-09-22 16:42:07 236

转载 Linux多线程──3个子线程轮流运行

迅雷笔试题:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。程序:#include    #include      const int THREAD_NUMBER = 3;    // 子线程的互斥量和条件变量   pthread_mutex_t thr

2017-09-22 16:40:06 673

转载 Linux多线程──主线程和子线程分别循环一定次数

子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。要注意条件变量的自动复位问题。#include    #include      // 互斥锁,条件变量   pthread_mutex_t mutex;  pthread_cond_t cond;    // 循环次数   int ma

2017-09-22 16:38:32 638

转载 Linux 的多线程编程的高效开发经验

本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。    背景    Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上

2017-09-22 16:34:19 122

转载 对Linux中多线程编程中pthread_join的理解

在Linux中,默认情况下是在一个线程被创建后,必须使用此函数对创建的线程进行资源回收,但是可以设置Threads attributes来设置当一个线程结束时,直接回收此线程所占用的系统资源,详细资料查看Threads attributes。其实在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这个进程

2017-09-04 22:48:18 1465

转载 S3C2440 spi驱动简单测试

没有用到子系统,简单示例。这两天参考网上的资料,自己写了个SPI的驱动,并实际测试通过。硬件平台:mini2440 用的是S3C2440 的SPI1(共有2个SPI模块)操作系统:linux-2.6.32.2测试方法:将SPI的MISO与MOSI管脚短路,这样读数据的时候第一个发出的dummy字节即为收到的字节。下面是驱动的源代码(mini2440_sp

2017-09-02 23:50:59 617

转载 nfs方式启动rootfs配置过程

前提:宿主机配置好了nfs服务这里使用nfs主要是做rootfs挂载。开发板中运行kernel做nfs客户端,宿主机中运行nfs服务。在宿主机的nfs服务器中导出文件夹形式的rootfs目录,在客户端中去挂载这个文件夹形式的rootfs进而去启动系统。步骤1:设置nfs启动方式的bootargs在uboot命令行修改bootargs的参数:setenv bo

2017-09-02 23:49:41 242

转载 基于S3C2440的Linux SPI驱动移植笔记

参考:http://blog.csdn.net/woshixingaaa/article/details/6574215http://blog.163.com/joyrain_06/blog/static/1788253920113823524293/Linux内核版本:2.6.30.4测试平台:EmbedSky TQ2440在2.6.30.4内核源码中,已经给出了S3

2017-09-02 23:49:04 314

转载 Linux驱动 device 的probe函数是怎么被调用的

今天正好有空,研究了一下platformdevice的probe函数时如何被调用的。我觉得这个过程应该可以推广到一般设备的探测函数的调用。以mini2440中的watchdog为例。先看配置文件中对watchdog的设置:[cpp] view plain copy print?static struct resource s3c_wd

2017-09-02 23:47:47 1189

转载 container_of()宏

在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr:        the pointer to the

2017-09-02 23:47:09 150

转载 kobject,kset,子系统层次结构 、platform_device platform_driver

为什么两个name的名字必须匹配才能实现device和driver的绑定?(1)在内核初始化时kernel_init()->do_basic_setup()->driver_init()->platform_bus_init()初始化platform_bus(虚拟总线);(2)设备注册的时候platform_device_register()->platform_device_ad

2017-09-02 23:46:15 361

转载 platform_driver_register()--如何match之后调用probe

int platform_driver_register(struct platform_driver *drv)  {      drv->driver.bus = &platform_bus_type;/*关联总线*/      /*关联driver的设备方法*/      if (drv->probe)          drv->driver.probe = platf

2017-09-02 23:44:55 2178

转载 spi master spi driver spi device

为了更好的将各个层次划分开来,互不影响。所以抽像出来了3个层次:1、spi核心管理层2、spi控制器驱动(作为spi master)3、spi设备驱动(作为spi slave)本来,master与slave之间可以直接进行通信,但是这样耦合程序就很大。更改一点就得全改,因为spi的时钟有不同的极性以及空闲时时间线的定义包括,master提供的时钟的最大频率都受到限制。所以引

2017-09-02 23:44:13 1068

转载 Linux下的platform总线驱动

一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini2440开发板,运用Platform和device_attribute机制,编写按键驱动代码和测试代码。 我们知道linux内核中常见的的总线有I2C总线,PCI

2017-09-02 23:43:29 159

转载 详解Linux2.6内核中基于platform机制的驱动模型 (经典)

【摘要】本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程。

2017-09-02 23:41:28 224

转载 ”vmware虚拟机迁移后无网卡eth0只有lo“的解决方法

由于更换电脑,将之前电脑上的vmware虚拟机直接拷贝过来使用,在启动的时候,发现找不到网卡eth0,在输入ifconfig –a的时候,也没有任何Ethnet的信息,而输入ifconfig eth0 down 的时候,提示我no device found(设备没法找到),检查了VMware的网络配置的时候,和另一个电脑的设置一样。回想了在启动VMware的时候,系统提示我的Ubuntu文件被移动

2017-09-01 07:18:38 5676

转载 Linux平台总线驱动设备模型

platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。Linu

2017-09-01 07:14:24 146

转载 SPI总线之CPOL CPHA(转)

【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在

2017-09-01 07:13:32 407

转载 设备模型、设备与驱动关联的全过程分析 platform_device platform_driver driver bus关系

1.     平台驱动注册过程        具体的目录如下:    关于设备模型、设备与驱动关联的全过程分析。... 1    1.1 at91_i2c_init()函数... 1    1.2 platform_driver_register()函数... 2    1.3     driver_register()函数... 4    1.4 

2017-09-01 07:12:33 249

转载 platform详解

一、platform设备模型从Linux 2.6起引入了一套新的驱动管理和注册机制,platform_device和platform_driver,Linux中大部分的设备驱动都可以使用这套机制。platform是一条虚拟总线。设备用platform_device表示,驱动用platform_driver进行注册,linux platform driver机制和传统的device driv

2017-09-01 07:11:07 2139

转载 Linux中SPI子系统图解和mini2440下的SPI驱动移植

1.SPI子系统框图详解:SPI总线上有两类设备:一类是主控端,通常作为SOC系统的一个子模块出现,比如很多嵌入式MPU中都常常包含SPI模块。一类是受控端,例如一些SPI接口的Flash、传感器等等。主控端是SPI总线的控制者,通过使用SPI协议主动发起SPI总线上的会话。而受控端则被动接受SPI主控端的指令,并作出响应的响应。如图1所示,linux下的spi子系统主要涉

2017-09-01 07:10:37 222

转载 SPI驱动的移植(Linux2.6.24)

主题 : SPI驱动的移植(Linux2.6.24)复制链接 | 浏览器收藏 | 打印aoohoo 级别: 新手上路作者资料发送短消息加为好友UID: 3083精华: 0发帖: 36金钱: 360 两威望: 360 点

2017-09-01 07:09:09 350

转载 S3C2440 Linux驱动移植——SPI

PC主机:Ubuntu 10.4目标板:TQ2440开发板,Linux内核2.6.32本文将从原理上讲解如何进行SPI驱动移植。作者希望在移植SPI驱动之前,您已对SPI子系统有所了解。本文的讲解将基于我所写的spi子系统分析:基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)基于S3C2440的嵌入式Linux驱动——S

2017-09-01 07:08:24 266

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。预备知识要求:1.SPI总线                       2. platfrom平台                       3. sysfs子系统                       4. 阅读过LDD3第3,5,6,7,9,10,11章的内容。NOTE:如果

2017-09-01 07:07:06 260

opencv4.9.0+contrib-3rdparty ffmpeg、ippicv boostdesc、vgg-gener下载

win10 opencv4.9.0 + contrib 编译安装 ffmpeg ippicv boostdesc vgg_generated 下载失败及 setlocal 错误解决(附文件下载) 1.opencv4.9.0_3rd.zip 解压到 opencv-4.9.0/build/3rdparty ffmpeg/ ffmpeg_version.cmake opencv_videoio_ffmpeg.dll opencv_videoio_ffmpeg_64.dll ippicv/ 2.downloads.zip 解压到 opencv-4.9.0/build/downloads 内容包括如下等 wechat_qrcode/ detect.caffemodel detect.prototxt sr.caffemodel sr.prototxt xfeatures2d/ boostdesc_bgm.i boostdesc binboost_064.i vgg_generated_48.i

2024-05-25

opencv 安装时,自动下载的库,boostdesc、vgg-generated、ippicv-2020-lnx-intel6

opencv 安装时自动下载的库,网络不好时不好下载 boostdesc vgg_generated ippicv_2020_lnx_intel6 ippicv_lnx

2023-12-20

arm-linux-gcc-4.3.2-2.tgz

由于上传文件大小限制,将工具链分为2个压缩文件,arm-linux-gcc-4.3.2-1.tgz和arm-linux-gcc-4.3.2-2.tgz 请务必下载完整,分别进行安装。 安装方法: 1.ubuntu 终端输入 tar -zxvf arm-linux-gcc-4.3.2-1.tgz -C / (C后面有个空格) 2.ubuntu 终端输入 tar -zxvf arm-linux-gcc-4.3.2-2.tgz -C / (C后面有个空格)

2017-05-29

arm-linux-gcc-4.3.2-1.tgz

由于上传文件大小限制,将工具链分为2个压缩文件,arm-linux-gcc-4.3.2-1.tgz和arm-linux-gcc-4.3.2-2.tgz 请务必下载完整,分别进行安装。 安装方法: 1.ubuntu 终端输入 tar -zxvf arm-linux-gcc-4.3.2-1.tgz -C / (C后面有个空格) 2.ubuntu 终端输入 tar -zxvf arm-linux-gcc-4.3.2-2.tgz -C / (C后面有个空格)

2017-05-29

3-野火M3-3.2寸LCD显示(20120810).zip

3-野火M3-3.2寸LCD显示(20120810).zip

2017-05-29

stm32战舰开发板TFTLCD显示实验,ILI9341驱动模组

stm32战舰开发板TFTLCD显示实验,ILI9341驱动模组

2017-05-29

tslib-1.4.tar.gz

tslib-1.4.tar.gz

2017-05-29

CANTest_Setup_V2.18.exe

CANTest_Setup_V2.18.exe

2017-05-29

libmgplus-1.2.4.tar.gz

libmgplus-1.2.4.tar.g

2017-05-29

libjpeg62-dev_6b1-2ubuntu2_i386.deb

libjpeg62-dev_6b1-2ubuntu2_i386.deb

2017-05-29

qt-devel_3.3.8-5_i386.deb

qt-devel_3.3.8-5_i386.deb

2017-05-29

zlib-1.2.11

zlib-1.2.11

2017-05-29

JLINK 最新固件

支持MDK4.5,最新JLINK固件,经试验有效,并支持MDK4.71版本。

2013-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除