
ARM
文章平均质量分 76
yx_l128125
这个作者很懒,什么都没留下…
展开
-
按键中断---那些年我们一起玩mini2440(arm9)裸机
ARM中断控制系统按键驱动程序设计一.Arm中断控制系统1.查询方式程序不断地查询设备的状态,并做出相应的反应。该方式实现比较简单,常用在比较单一的系统中,比如:一个温控系统中可以实用查询的方式不断检测温度变化。特点:实现简单;但CPU利用率很低,不适合多任务的系统。2.中断方式当事件发生时,硬件会设置某个寄存器;CPU在每执行完一个指令时,查看这个寄存器,如果所关注的原创 2012-06-27 19:24:17 · 2899 阅读 · 2 评论 -
STM32菜鸟成长记录---RS485通讯协议的应用
RS485缺点:RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不能够同时发送数据以避免总线竞争,所以整个系统的通信效率必然较低,数据冗余量较大,对于速度要求高的应用场所不适应用RS485总线。同时由于RS485总线上通常只有一台主机,所以这种总线方式是典型的集中—分散型控制系统。一旦主机出现故障,会使整个系统的通信限于瘫痪状态,因此做好主机的在线备份是一个重要措施。*原创 2012-08-27 23:18:11 · 106122 阅读 · 18 评论 -
HardFault_Handler问题查找方法
HardFault_Handler问题查找方法 STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。出现问题时排查的方法:发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应转载 2013-07-08 09:59:05 · 2235 阅读 · 0 评论 -
j-tag 和j-link 关系
调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种, 那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢? 有以下两种做法: 1. 在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层 上的转转载 2013-06-21 10:28:41 · 4129 阅读 · 0 评论 -
Keil MDK与h-jtag联调
转自博客:http://blog.youkuaiyun.com/zhzht19861011/article/details/5846510这博主关于MDK 的使用的文章,写的得TM的好 TM的实用! 真心收藏! keil MDK也是可以借助h-jtag进行单步调试,写出来与大家一起分享一下.keil MDK编译器使用V4.01版本,下载地址:http://www.embed转载 2013-06-21 13:49:12 · 1876 阅读 · 0 评论 -
Keil MDK从未有过的详细使用讲解
转自博客:http://blog.youkuaiyun.com/zhzht19861011/article/details/5846510这博主关于MDK 的使用的文章,写的得TM的好 TM的实用! 真心收藏! 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的。但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功转载 2013-06-21 14:08:02 · 83542 阅读 · 17 评论 -
keil MDK中如何生成*.bin格式的文件
转自博客:http://blog.youkuaiyun.com/zhzht19861011/article/details/5846510这博主关于MDK 的使用的文章,写的得TM的好 TM的实用! 真心收藏! 在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿转载 2013-06-21 15:15:40 · 3896 阅读 · 0 评论 -
Keil MDK编译器(V4.03)与J-LINK使用
转自博客:http://blog.youkuaiyun.com/zhzht19861011/article/details/5846510这博主关于MDK 的使用的文章,写的得TM的好 TM的实用! 真心收藏! 前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash转载 2013-06-21 14:29:31 · 2212 阅读 · 0 评论 -
XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
MKD 报错: linking...LCD.axf: Error: L6218E: Undefined symbol EnZK (referred from ht128x64.o).LCD.axf: Error: L6218E: Undefined symbol GetFlashCnBuf (referred from ht128x64.o). 解析:Undefined sy原创 2013-07-03 10:49:04 · 239946 阅读 · 2 评论 -
stm32系统时钟详解&&移植
写作原由:今日接手用stm32f100xx芯片开发的项目,以前用的是stm8s 和stm32f103xx芯片;因为在别人的项目代码的基础上做2次开发,但是发现那个代码main函数中没有对系统时钟的设置的相关函数,一直纳闷,但也没有深究,直至昨日 调试时出现串口收发数据出错,源代码在原项目的板子上串口发送、接收数据正常,同样程序在项目板子上收发的数据不正确, 两块板子芯片一样,串口收发管脚一样,最后原创 2013-07-01 10:34:29 · 13858 阅读 · 1 评论 -
串口uart调试小小结
写作原因:近来蛋闲?非也 ! 昨天一同事合作的项目代码出现的bug-----他的上位机每200ms给我发送命令向我这边下位机读取一些数据,在此过程会按下按键做一些另外操作并给他返回数据;(通信是通过)1.他定时200ms给我发回指令,我应该给他返回字符串:@VUMultiGet(Out_1, -inf dBFS, Normal, Out_2, -inf dBFS, Normal, Ou原创 2013-08-23 17:01:36 · 4832 阅读 · 0 评论 -
无法进入main 函数原因之一
因为用了printf 函数而无法进入到main函数:解决1:使用了printf之类的库函数,需要编写_sys_exit()之类底层函数。照你的提示看,也许是_sys_open()没写。_sys_xxx之类的的只要写个空函数就行了;因printf()之类的函数,使用了半主机模式。使用微库的话,不会使用半主机模式,所以就没有问题。添加下面代码,就可以使用标准库了:#pragma imp原创 2013-11-25 16:16:49 · 8401 阅读 · 1 评论 -
关于 最近项目 测试--调试的一点思考
怕用思维导图写出来了 ,之后又当垃圾删了,故此当成文章存档;原创 2013-11-20 22:33:21 · 2286 阅读 · 0 评论 -
STM32菜鸟成长记录---窗口看门狗
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。图1 窗口看门狗的上窗口就是配置寄存器WWD原创 2012-09-30 09:24:54 · 27882 阅读 · 7 评论 -
STM32菜鸟成长记录---AD7792遇到的问题
A/D转换原理及参数指标1. 采样定理2. 为了正确无误的用图5.2.2中所示的采样信号vs表示模拟信号vi,必须满足式中, fs>=2fmaxfs为采样频率;fmax为输入信号vi的最高频率分量的频率;上式就是所谓的采样定理。满足采样定理的条件下,可以用一个低通滤波器将信号vs还原为vi,这个低通滤波器的电压传输系数|A(f)|在低于fmax的范原创 2012-09-30 09:28:12 · 10395 阅读 · 0 评论 -
uart串口发送---那些年我们一起玩mini2440(arm9)裸机
Uart工作原理:数据通信方式为:并行通信与串行通信两种:§并行通信:利用多条数据线将数据的各位同时传送。它的特点是:传输速度快,是用于短距离通信;§串行通信:利用一条数据线将数据一位位地顺序传送。特点是通信线路简单,利用简单的线缆就实现通信,低成本,是用于远距离通信。 异步通信:ª异步通信:以一个字符为传输单位,通过两个字符间的时间间隔是不固定的,然而同一字符中的原创 2012-06-29 20:06:21 · 6499 阅读 · 0 评论 -
ADC触摸屏转换---那些年我们一起玩mini2440(arm9)裸机
触摸屏驱动程序设计触摸屏工作原理:四线电阻屏结构上如图,是在玻璃或丙稀酸基板上覆盖两层均匀导电的ITO层,分别作为x电极和y电极,他们之间由均匀排列的透明格点分来绝缘。X电极和y电极的正负端由导电线(黑色粗体线)从两端引出,引出x-,x+,y-,y+.当接触触摸屏表面并施加压力时,上层的ITO导电层和下层的ITO导电层发生接触,形成上面右图的等效电路。 1.y坐标计算:在y原创 2012-06-29 20:44:41 · 2829 阅读 · 0 评论 -
LCD---那些年我们一起玩mini2440(arm9)裸机
LCD-liquid crystal display 的简称,液晶显示器按驱动方式分为1.静态驱动、2.简单矩阵驱动及3.主动矩阵驱动。其中,简单矩阵又可分为1.扭转向列型(TN)和超转向列型(STN)两种,而主动矩阵驱动则以TFT为主。 TN与STN都采用场电压驱动方式,如果显示尺寸加大,中心部分对电机变化的反应时间就会变长,显示器的速度跟不上。为解决这个问题,主动矩阵驱动TF原创 2012-06-29 20:51:59 · 2672 阅读 · 3 评论 -
定时器中断---那些年我们一起玩mini2440(arm9)裸机
(时钟体系)时钟概念:★时钟脉冲:一个按一定电压幅度,一定时间间隔连续发出的脉冲信号; ★时钟频率:在单位时间(如:1秒)内产生的时钟秒冲数;时钟的作用:时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作无不是按照时钟信号的节奏进行的。 时钟的作用(简洁版)系统中的设备需要有个时间来和它进行原创 2012-06-27 19:35:56 · 3680 阅读 · 0 评论 -
AD电阻转换---那些年我们一起玩mini2440(arm9)裸机
ADC驱动程序设计ADC:模/数转换器。一种将模拟信号转换成数字信号的装置;DAC:数/模转换器。一种将数字信号转换成模拟信号的装置。模拟信号转换为数值信号的步骤:1. 取值;2. 量化;3. 编码;S3C2440ADCS3C2440芯片内部共有8路A/D转换通道AIN0~AIN7,但是转换器只有一个。转换精度为10位,故转换后的原创 2012-06-29 20:38:39 · 3539 阅读 · 4 评论 -
Mmap设备方法---那些年我们一起玩嵌入式驱动
mmap设备方法)Mmap系统调用(功能)Void* mmap(void * add, size_t len , int prot, int flags, int fd, off_t offset) Mmap系统调用(参数)*Addr指定映射的起始地址,通常设为NULL,由系统指定。*Length:映射到内存的文件长度*port:映射区的保护方式,可以是:原创 2012-06-29 21:04:54 · 1460 阅读 · 0 评论 -
STM32菜鸟成长记录---1
学习新知识我的一个方法是:1.先把握住新东西大的一个框架、涉及的内容、范围;简而言之:理清架构,把握重点;2.在看清楚大的框架所涉及的知识时,再度量哪些是我所需要必须学习的(重点),哪些是现在不急着掌握的可以以后学习;简而言之:去我所需,为我所用;3.理论归理论,掌握理论知识的基础上,加以应用,能更深刻的理解这些知识点;简而言之:实践出真知; 声明:本文部分参考自-原创 2012-08-05 21:37:24 · 2843 阅读 · 0 评论 -
STM32菜鸟成长记录---GPIO的使用
#include "stm32f10x_lib.h"#include "stm32f10x.h"GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO宏操作结构体void Delay(__IO uint32_t nCount)//__IO的宏定义volatile{ for(; nCount != 0; nCount--);}原创 2012-08-12 21:18:31 · 23584 阅读 · 2 评论 -
字符设备驱动
一. 知识点1. 设备号;2. 创建设备文件;3. 设备注册;4. 重要数据结构;5. 设备操作; 二.主设备号字符设备通过字符设备文件来存取。字符设备文件由使用ls -l的输出的第一列的”C”标识;如果使用ls –l 命令,会看到在设备文件项中有2个数(由一个逗号分隔)这些数字就是原创 2012-07-31 22:30:34 · 6228 阅读 · 2 评论 -
把驱动编译进内核
驱动程序的安装---有两种方法:(1) 模块插入方式;(2) 直接编译进内核; 本章我们来详细讲解---直接编译进内核这种方法我们把LED的驱动程序编译进内核为例:一. 首先准备好LED的驱动程序内核模块mini2440_leds.c如下:#include #include #include #inclu原创 2012-07-31 22:25:26 · 2370 阅读 · 0 评论 -
STM32菜鸟成长记录---普通定时器应用
一、STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图:从图中可以看出,定时器的原创 2012-08-17 23:14:52 · 61853 阅读 · 13 评论 -
STM32菜鸟成长记录---系统滴答定时器(systick)应用
1.systick介绍 Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个原创 2012-08-19 22:55:31 · 108364 阅读 · 10 评论 -
18B20温度传感器详解
数据传感器DS18B20 特性:1. 单独的单线接口,只需1个接口引脚即可通信;2. 不需要外部元件;3. 可用数据线供电;4. 不需备份电源;5. 测量范围从-55°C ~ +125°C, 增量为0.0625°C;6. 以12位数字值方式读出温度;7. 在1s内把温度变换为数字;原创 2013-12-20 17:31:06 · 14800 阅读 · 0 评论