自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

原创 Linux 自学过程遇到的问题笔记

1、linux驱动和应用程序的编译       因为驱动最终是在开发板上跑,所以板子是arm架构的使用的编译器是arm架构的编译器(这块没仔细研究),并且在Makefile文件中指定板子上内核在Ubuntu平台下的源码位置,否则可能会出现在Ubuntu下能编译过去在板子上跑不起来。Ubuntu和板子用的linux内核可能不一样,有些函数的实现也存在差异。       应用程序也需要指定编译...

2018-08-17 23:57:02 338

原创 linux make menuconfig界面及.config 的个人理解

最近买了周立功老师的imx287A的开发板开始学习linux,什么都不懂学习的过程好难啊,每天看点,先不管对错把自己的理解记下来,有错的以后再回来改。 编译过程,首先./config-kernel,config-kernel是致远提供的一个脚本,脚本中指定了SOC架构为ARM、编译器为arm-fsl-linux-gnueabi-gcc这个是致远电子提供的编译器,然后根据你输入的数字执行不同处理器的

2018-01-19 02:29:18 7971

原创 linux 驱动中断部分学习

学习按键中断,中断程序可以在中断函数中一次实现,也可以分开在中断的上下半部实现,上半部实现紧急的处理,下半部做些不紧急的处理。上下半部的实现分为:软中断、tasklet、工作队列、线程中断。软中断和tasklet处理函数中不能睡眠。  问题1:           今天做工作队列的实验,在初始化函数中需要申请中断号同时初始化关联work_struct和下半部的处理函数,刚开始我把初始化放在

2018-01-12 22:23:09 305

原创 linux IIC驱动学习

这两天学习linux的iic驱动,使用的芯片是FM24C02A,参考周立功老师的书和从他那买的287A套件做实验,昨天写了驱动程序和应用程序,发现一个问题:应用程序如果一次写入8个字节,然后一次读出8个字节,则读出的第8个字节和写入的第8个字节不一样,原因还在查找中。数据发送函数我用的 int i2c_master_send(const struct i2c_client *client, c

2018-01-11 18:06:24 352

原创 linux命令学习

1、查询磁盘容量的使用情况,df --

2017-12-09 17:45:34 278

原创 CM3 SVC和PendSV

SVC--系统服务调用,PendSV--可悬起系统调用,多用在系统软件开发中。SVC用于产生系统函数的调用请求,例如操作系统不让用户程序直接访问硬件,而是通过一些系统服务函数,让用户程序使用SVC发出对系统服务函数的呼叫请求,以此来间接访问硬件。NMI服务例程不能使用SVC指令,否则产生硬fault。SVC异常必须得到立即响应,否则将会产生硬fault。PendSV像普通中断一样可以被悬起。悬

2017-11-06 09:57:39 1197

原创 存储器

一、位带Cortex-M3内核 SRAM区和外设区的最低的1M字节都有位带别名区。用来定义对静态存储区和外设区外设寄存器实现原子操作。#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))#define MEM_ADDR(addr) *((volat

2017-11-05 15:05:18 303

原创 STM32 DMA使用

一、串口接收 DMA串口接收使用DMA,如果设置的是单次模式,接收缓冲器的大小至少和接收个数一样大,如果缓冲器小于接收个数,缓冲器的内容有可能被覆盖,如果一次接收到的数据大于设置的接收个数,超过接收个数的数据将会被清零。

2017-10-27 10:01:35 686

原创 STM32的SPI使用注意

今天写OLED屏SSD1309的驱动,用的是SPI2。屏只接收数据,不给单片机单片机发送数据,所以在硬件上连接的只有CS、SCK、MOSI,没有用到单片机的MISO引脚,片选引脚设置为软件管理模式,SPI的方向设置为双向全双工。对IO的时钟、SPI2等初始化完成后将程序下载到片子上发现屏没有任何反应,如果在调用发送函数之前判断发送的标志,第一次发送可以成功,第二个数据就会死在这里,debug发

2017-10-24 15:32:55 6690

原创 uboot 移植学习过程遇到问题的解决方法

对uboot还不懂,现在记录学习过程中出现的问题的解决方法,以后如果意识到问题再回来修改1、  make all CROSS_COMPILE=arm-linux-   出现bad value  (armv5) for -march=switch解决: export   CROSS_COMPILE=arm-linux-            export   ARCH=arm

2017-08-09 12:21:35 2441

原创 硬件调试

1、电源芯片       电源在电路中起着至关重要的作用,市场上同一型号不同卖家的价格差距很大,有时候我们想买便宜的因为可以降低成本,不管是便宜的还是贵的我们有必要从买回来的芯片中做抽样测试,加上负载在负载电流接近手册上最大值时看输出电压和电压的纹波是否满足需要、是否和手册上描述的基本吻合。      最近遇到过两次电源芯片的问题,让我惊醒有必要对购买的关键器件做一些必要的测试。   

2017-07-21 17:13:28 1561

原创 WM8978学习

WM8978是一个低功耗的CODEC编解码芯片,输入支持line、MIC和输出处理。1、MIC输入两对立体MIC输入,信号的路径可以手动控制,或者ALC循环去控制MIC信号的电压。最大增益55.25db。ADC的输入支持可编程的增益放大        LINE输入(AUXL AUXR),可以做为背景输入。

2017-07-01 23:30:24 10806 1

原创 STM32F429之IO操作

1、读引脚状态      使用HAL库函数,这两天因为不注意把自己坑了两天!是这样的,我想读PB3口的状态,调用库函数HAL_GPIO_ReadPin(),我是这样写的HAL_GPIO_ReadPin(GPIOB,3),怎么读都不对整的都快抑郁了,goto到函数里边发现GPIOx->IDR & GPIO_Pin,我赋值GPIO_Pin=3,那读的就是引脚0和1的状态啊,改成HAL_GPIO_R

2017-06-19 23:17:14 2523 1

原创 STM32F4 HAL库DMA学习

用了一段时间HAL库,不知道是不是用外设固件库时间长一点的原因,个人感觉没有固件库来的直接。看DMA部分看的有点乱,捋一下。DMA的使用方法及细节直接看官方的手册就可以了,注意的是如果原地址和目的地址的数据长度不一样的话只能使用FIFO模式,直接模式下原地址和目的地址的数据长度必须一致。主要是简单整理一下使用DMA的初始化过程,以串口发送使用DMA为例:            (1

2017-06-14 23:06:38 13853 1

原创 LTDC 学习

LTDC带时序控制,省去了控制器的控制芯片,配置好时序参数和每个层的参数,LTDC会自动从缓冲中取出数据刷新的显示器上。LTDC有三个层背景层、第一层显示、第二层显示由下向上叠加,但是最终显示的是这几层混合后的结果。LTDC支持alpha混合,这样就可以做出比较漂亮的界面,做出第二层悬浮在第一层的效果,类似于弹幕。        主要简单记录下我对alpha透明的理解,如果理解有偏差,再修正。

2017-06-13 12:02:03 4210

原创 W25Q256学习

一、基本特性容量256Mb,最小的组织单位是页每个页256个字节,可进行页编程(一次写256个字节);16个页组成4KB的扇区,可进行扇区擦除,128个扇区组成32KB块,64KB的组,可以整片擦除。256有8192个扇区和512个块。       256支持标准的SPI接口,2/4线SPI,SPI频率最大104MHz,64位唯一序列号,256字节的安全寄存器。       在时钟的上

2017-06-07 18:58:04 32782 6

原创 Fatfs文件系统学习

移植过程网上有很多,直接参考就可以了。1、英文长文件名的实现http://blog.csdn.net/lan120576664/article/details/48344311      英文长文件名的实现参考了这个朋友的帖子。     #define _CODE_PAGE  437    选择不同的编码格式     #define _USE_LFN    3    长文件

2017-06-02 11:45:03 2103

原创 STM32F4 FMC学习

一、区域划分          FMC灵活的存储控制器。FMC可连接SRAM(异步或同步)、SDRAM、NORFLASH、PC卡、NANDFLASH.支持突发模式,可编程时钟,8位、16位、32位宽的数据总线。FMC有6个存储区域,每个区域支持256MB的寻址空间。          第一个区域用于NORFLASH、PSRAM、SRAM,包括4个子区域,每个子区域有各自的片选信号,可连

2017-05-18 15:48:56 8380

原创 STM8系列学习

一、时钟  时钟的三个来源:外部的高速时钟1~24MHz,内部的高速时钟16MHz(可分频),内部的低速时钟128KHz。        系统复位后默认的使用内部时钟的8分频做为系统时钟,系统稳定后,可以修改内部时钟分频或者切换时钟,内部时钟的精度不高。        外设门控时钟:外设的时钟可以通过使能位关闭降低功耗,复位后默认所有的外设时钟都是打开的,关闭外设时钟前必须先关闭外设的

2017-05-17 18:57:23 742

原创 STM32F4学习

在学习F4,遇到的问题写出来加深印象,有理解错误的发现后再改。       用固件库试过F407,时钟配置需要根据自己板子上的晶振修改时钟配置文件中的时钟频率需要修改外部时钟的宏定义,F429用的是HAL库需要在时钟配置初始化的时候根据自己板子上的晶振修改分频和倍频,不需要修改时钟的宏定义。

2017-05-11 09:44:38 866

原创 数据处理

数据处理

2017-03-11 14:00:07 246

原创 SPI通信学习

SPI串行通信协议是由摩托罗拉提出的,全双工的四线通信协议(MOSI、MISO、SCK、CS),它有四种工作模式。一般是字节的MSB位最先传输。

2016-12-20 21:02:47 594

原创 emwin 移植调试总结

最近几天移植emWin遇到了各种各样的问题,到现在遇到的问题基本解决完了,做个简单总结,供其他朋友和自己以后移植到其他设备的时候参考用。刚开始我用的片子STM32F03RBT6, Flash 128KB,RAM 20KB,整个工程中移植了SD卡fatfs文件系统、fatfs显示JPEG图片的一个小的固件库、TFT和触摸的驱动、摄像头调了一部分(屏蔽了)、整个程序冗余比较大。       参

2016-12-20 20:58:42 12439 4

原创 emWin显示汉字

调用emwin 显示字符的函数显示汉字的原理和LCD读取SD卡字库显示汉字的原理类似,区别是LCD显示汉字需要自己计算汉字在字库中的偏移量然后从字库文件中读出点阵信息然后自己画点显示。emwin显示 还是需要自己从SD卡读出字库的信息交给emwin去处理点阵信息。        具体的实现过程可以参考整点原子EMWIN的实验21汉字显示(Flash 外置字库)这个例程,需要修改的是GUICha

2016-12-17 18:23:42 3018

原创 emWin学习

一、API学习   1.1、初始化         int GUI_Init(void);  函数来初始化emWin内部数据结构和变量。如果在初始化之前调用WM_SetCreateFlags()使用窗口管理器,则在GUI_Init()内创建背景窗口。(也就是窗口设置创建标记必须在初始化之前)。    1.2、显示文本          可以显示字符串、十六进制、十进制、二进制数,文

2016-12-15 20:34:47 8483 1

原创 摄像头

一、OmniVision SCCB总线介绍       1.1、简介           Omnivision 公司制定了Serial Camera Control Bus(SCCB)总线协议,SCCB是一个三线的串行总线用来控制OmniVision公司的摄像头,SCCB用2线的串行模式来控制。            SCCB摄像头只能做从,SCCB三线总线上可以挂载多个摄像头,两线的

2016-12-08 20:31:14 935

原创 复用功能IO和调试配置(AFIO)

为了优化外设数目,可以把一些复用功能重新映射到其他引脚上。设置复用重映射和调试IO配置寄存器(AFIO_MARR)实现引脚的重新映射,这时复用功能不再映射到它们的原始分配上。        复用和映射是两种不同的功能,复用指同一个引脚当做普通的GPIO或者把这个引脚当做某一个外设使用,复用功能的时候不需要开启复用时钟。         映射,是把一个引脚上是某个外设的功能映射到其他引脚上使

2016-12-08 16:24:37 2150

原创 图片的格式与压缩

BMP是一种与硬件无关的图像文件格式,采用位映射的存储格式,除了图像深度可选,不采用其他的任何压缩,因此BMP图片占用的空间很大。BMP图片的图像深度可选1bit、4bit、8bit、16bit、24bit、32bit,BMP文件存储为数据时,图像的扫描方式是按从左到右、从上到下的顺序。            典型BMP文件有三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容

2016-12-05 20:33:33 1634

原创 基于STM32的简单电子书的实现

今天玩了会液晶屏,原来显示汉字都是也取模软件区模后在液晶屏上显示,显示内容改变以后还需要重新做字模,比较麻烦。这两天有时间,参考网友资料,实现了读取汉字的内码从SD卡的GB2312点阵字库读取点阵在液晶屏上显示,字库的生成软件用的是易木雨的点阵字库生成器。能生成很多种语言的字库。做完了读取显示后,我自己又琢磨了一下,简单的实现了从SD卡中读取txt文档然后再液晶屏上显示txt内容。     

2016-12-03 15:27:53 6212

原创 用到的软件

1、putty、securCRT2、dnw

2016-11-28 16:51:15 277

原创 容易混淆的器件——硬件

1、HEF4068与CD4068的区别:HEF4068是8输入与非门,CD4068是8输入与门 / 与非门。2、LM358和LMV358的区别:LMV358是低功耗版的,LM358单供电电压3V到32V,双供电电压±1.5V到±16V;LMV358供电电压2.7V到5V。

2016-10-26 15:20:34 686

原创 ucosIII学习

一、简单了解           UCOSIII是一个内核可剥夺的操作系统,保护临界段有两种方法:关闭中断、锁住调度器(只能防止其他任务的方位,但是不能阻止中断访问该程序段的变量)。           进入中断需要调用OSIntEnter()函数使中断嵌套层数变量OSIntNestingCtr加1,退出中断的时候调用OSIntExit()函数使中断嵌套数量变量减1,因为有些函数不能在中断

2016-10-22 18:08:06 725

原创 Linux基础知识学习

一、Linux的磁盘分区及目录    Linux的配置是通过修改配置文件来完成。      1.1、Linux磁盘分区            Linux可以将磁盘分为多个分区,每个分区可以被当做一个独立的磁盘使用,磁盘类型:主分区、扩展分区、逻辑分区。           主分区标记为活动,用于操作系统的引导,一块磁盘最多划分4个主分区,主分区存放操作系统的文件或用户数据。

2016-10-10 21:22:27 17310 4

原创 ARM入门学习

一、基础  ARM内核只提供快速中断(FIQ)和标准中断(IRQ)2个中断向量,半导体厂家加入自己定义的中断控制器来支持串口、外部中断等硬件中断。MMU提供了使各个任务运行时独立的存储空间。MMU提供资源允许使用虚拟存储器 — — 将系统的物理存储器重新编址,可将其看成独立于物理地址的存储空间。MMU作为转换器,将程序和数据虚拟地址(编译时的链接地址)转换成实际的物理地址,即物理主存中的地

2016-10-09 21:00:33 564

原创 Arduino DUE 学习

一、简介    用Micro-B的USB线连接DUE到电脑,给DUE供电和下载程序。将USB连接到下载程序端口,从Tools>Board菜单选择Arduino Due(Programming port),从Tools>Serial Port菜单选择正确的串口。    编程环境:Arduino IDE 1.5或更高版本。    单片机工作电压:3.3V    板子可以通过USB(Na

2016-09-29 18:48:41 12042 2

原创 Mifare 卡学习

NFC技术允许符合ISO 14443A卡标准的产品叫MIFARE家族。数据存储叫NFC Data Exchange Format 简称NDEF。A类和B类加密都是6个字节。    一、存储映射    MIFARE卡存储结构被分成扇区,每个扇区4个或16个块;每个扇区的最后一个块叫控制块,包含MAD数据的叫MAD块,包含NDEF数据的叫NDEF块。    1.2、

2016-09-28 20:50:25 2652

原创 ECMA-340(ISO 18092) 学习

一、简介    这个标准定义了两个耦合设备简单通信的接口和协议。NFCIP-1的发起者和目标实现主动和被动的交互模式。主动交互模式下,发起者和目标利用各自的RF磁场进行交互,发起者开启数据传送,目标进行响应。被动模式下,发起者使用自己的磁场开启数据传输,目标利用发起者的磁场调制传送数据。

2016-09-27 07:45:45 1260

原创 NFC----PN532

一、PN532简介1.1、PN532由NXP出品,是一款高度集成的载波的13.56MHz传输模块,基于80C51内核有40KROM、                           1KRAM。 使用不同的固件支持13.56MHz频段的无线协议。     硬件接口:I2C、SPI、高速UART(HSU).        1.2、PN532有三个模式,可以通过两个引脚来选择

2016-09-23 22:59:24 22469 4

原创 ISO 14443 非接触式射频卡标准学习

1、ISO固定PICC卡的载波频率f=13.56MHz±7KHz,数据速率,f/128=106KHz.

2016-09-21 18:04:41 2581

原创 NFC 学习

NTAG213/215/216  NFC  type 2 型的标签 有144/504/888个字节。NTG21X系列由恩智浦半导体制造满足NFC论坛type 2型标准和ISO/IEC14443 Type A 标准。    FAST_READ 命令可以查看整个存储区通过NDEF通信格式。     安全性:7个字节UID,只读锁存函数,32位的密码保护。   防碰撞:智能的防碰撞函数让多个

2016-09-21 08:11:51 2406

i.MX28 EVK Linux Reference Manual中文V0.1(杨立业译)

我翻译的i.MX28 EVK Linux Reference Manual,请大家指导。译文仅供大家参考

2018-01-28

R8C38A引脚图

R8C38A引脚图详细的介绍了芯片的管脚对应的编号,极其有用!

2012-07-30

51单片机控制DS1302在LCD12864上显示

51单片机控制时钟芯片DS1302在LCD12864上显示,代码有详细的注解。另外欢迎您的交流和建议QQ:1024549573

2012-03-18

空空如也

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

TA关注的人

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