单片机

单片机的外设

◇◆丶佛笑我妖孽 提交于 2019-12-03 11:49:30
单片机的外设 有很多单片机的外设,初步一看,被设计得莫名其妙,但是实际上该外设被设计出来的时候已经是考虑到了其专门的 应用场合。 1、比如freescale(NXP)的mpc5xxx系列单片机的FlexPWM,可以中心互补对称三相PWM。专门为电机驱动设计。 2、Injected conversion。也是专门为电机驱动设计的。 3、CTU也可以认为是专门为电机驱动设计的。 来源: https://www.cnblogs.com/praiseslow/p/11794839.html

嵌入式系统概述

不想你离开。 提交于 2019-12-03 07:03:53
嵌入式系统 嵌入式系统就是嵌入到对象体中的专用计算机系统。它的三要素是:嵌入、专用、计算机。嵌入性是指嵌入到对象体系中,有对象环境要求;专用性是指软、硬件按对象要求进行裁剪;计算机是指实现对象的智能化功能且以微处理器为核心的系统。 广义地讲,一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体。即以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式处理器 微控制器MCU 嵌入式微处理器MPU DSP(Digital Signal Processor),是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、FFT、频谱分析等各种仪器上DSP获得了大规模的应用。 DSP是运算密集处理器,一般用在快速执行算法,做控制不是它的应用优势。为了追求高执行效率,不适合运行操作系统,核心代码使用汇编。 片上系统SoC 片上可编程系统SoPC 嵌入式系统组成 软件层: 应用层:文件系统/图形用户应用程序接口等 OS层:实时操作系统(RTOS)等 驱动层:设备驱动程序、HAL(硬件抽象层)、BSP(板级支持包)等 硬件层: 外围设备:电源,时钟,复位,Flash,SDRAM等 嵌入式处理器 名词解释 EPROM 可擦除可编程只读存储器(Erasable Programmable Read

[嵌入式]嵌入式系统概述

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 06:56:18
第1章 嵌入式系统概述 1.1 嵌入式系统概述 ·嵌入式系统的定义 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可剪裁、适应于对系统功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。 这个定义主要包含两个信息,一是嵌入式系统是专用计算机系统,因此必须要有处理器,具备计算机系统的基本特征。二是嵌入式系统的功能是有严格要求并按照指定的应用而设计的。 ·嵌入式系统应用领域 根据嵌入式系统的应用领域有交通管理、工控设备、智能仪器、汽车电子、环境监测、电子商务、医疗仪器、移动计算、网络设备、通信设备、军事电子、机器人、智能玩具、信息家电等等。主要的产品: ·网络设备: 交换机、路由器、MODEM等。 ·消费电子: 手机、MP3、PDA 、可视电话、电视机顶盒、数字电视、数码照相机、数码摄像机、信息家电等。 ·办公设备: 打印机、传真机、扫描仪等。 ·汽车电子: ABS防死锁刹车系统、车载GPS等。 ·工业控制: 各种自动控制设备。 ·现实中的嵌入式系统 ·嵌入式系统的组成 嵌入式系统一般由硬件层、中间层和软件层组成。 ·硬件层 硬件层包括嵌入式微处理器、存储器、通用设备接口和I/O接口。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。 ·中间层 硬件层与软件层之间为中间层

巴法云物联网平台,使用入门教程

人盡茶涼 提交于 2019-12-03 04:10:45
物体不联网,还叫物联网吗(手动滑稽脸 巴法云物联网 简介 巴法云物联网平台采用前后端分离的设计思想,致力于攻克高性能的异步并发的物联网端服务器,保证了低功耗下数据的完整性。巴法云物联网平台支持多模式的数据交互,满足不同开发者的需求,并且协议规范,适用于各种平台服务全兼容。文档编写全面,并提供开发实例,可使开发者快速构建应用,将物联网开速落实到产品中。 特征 轻量级 支持发布/订阅模式 提供遗嘱机制 支持TCP长连接 全平台兼容 因为物联网设备的特殊性,为了保证数据在低带宽、不可靠的网络中传输有效的数据,故云协议的设计原则是精简,不添加可有可无的功能,尽力保持云平台轻量级的特性,因此,结合当下设计趋势,构思了一套新的平台产品交互语言。 使用发布/订阅模式解除了通信设备终端之间的耦合,支持一对多、多对一、多对多的消息传递,发布者设备与订阅者设备彼此相互独立,消息发布者与订阅者不知道彼此任何相关信息就可以实现数据交互,在设备消息发布或接收期间,消息发布者与订阅者的其他操作不会暂停。 服务器端会将此次发送的消息作为遗嘱消息保留发布,即当有新的订阅者出现,服务器会将此消息推送出去。 五分钟入门 发/布订阅模式 订阅(subscribe):订阅给定的一个主题/频道的信息。 发布(publish)将信息发送到指定的主题/频道。 只有订阅该主题的设备才可以收到发往该主题的消息。 通俗的来讲

Cortex-M单片机下载数据到外部flash

匿名 (未验证) 提交于 2019-12-03 00:37:01
主机环境:Windows 10 64bit 开发环境:MDK 5.23 目标板:LPC54114 之前在NXP社区得到一块LPC54114的板卡,是由万利制作的,LPC54114是一款双核MCU,包含了一颗M4主核和一颗M0+从核,利用该板卡学习了一下双核MCU的开发流程,板卡中提供了一颗W25P80FLASH,之前拥有的板卡都没有挂外部FLASH,刚好之前利用LPC54608学习TouchGFX时可以把图片资源下载到外部FLASH中,因此借此机会来学习一下如何把数据下载到外部FLASH。 平时烧录代码我们都是烧录到MCU内部的FLASH中,如下图: 可以看到下载的时片上256KB的FLASH,该算法文件是由DFP包提供的,具体可以在keil5的安装目录下找到,如下: 加载到内部FLASH的算法有了,但加载到外部FLASH的算法还没得。keil5中提供了LPC54608板卡的外部FLASH算法,LPC54114的外部FLASH算法就需要我们自己实现了,而且我们的板卡不是NXP官方的板卡,更不可能提供外部FLASH的加载算法了。。。 进入到keil的FLASH目录,如下: 拷贝LPC5460x_MT25QL128文件夹到LPC54114_W25P80文件夹,并把其中有关信息全部替换成LPC54114相关信息。keil中提供了FlashOS.h头文件

armA9单片机liunxOS下led驱动开发

匿名 (未验证) 提交于 2019-12-03 00:30:01
led控制除了在裸机开发中使用寄存器编程以外,当板子运行linux操作系统时,需要在内核进行驱动,应用程序通过设备文件的IO接口,操作内核驱动中的相关函数,通过地址映射,进而控制寄存器的地址的值。 步骤: 1.实现模块加载和卸载入口函数 2.在模块加载函数中实现 a.申请设备号(register_chrdev()) b.常见设备文件(class_create()和device_create()) c.将寄存器物理地址映射为内核虚拟地址(ioremap())、申请中断以及配置寄存器(readl()和writel()) 3.实现file_operations结构体中的相关open、read、 write等函数。 驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/device.h> #include <linux/slab.h> #include <asm/uaccess.h> #include <asm/io.h> //设计一个类型,描述一个设备的信息 struct led_desc{ unsigned int dev_major; //设备号 struct class *cls; struct device *dev; //创建设备文件 void

单片机 串行通信练习

匿名 (未验证) 提交于 2019-12-03 00:26:01
单片机 串行通信练习 一、简述 甲方发送1,乙方发送2,甲方发送3,乙方发送4……每次加1,直至99。 文件打包:链接: https://pan.baidu.com/s/1er2xDqgrecxuGYeBG-Q0ug 密码: karu 二、效果 三、工程文件 1、Keil文件 2、仿真电路图 四、源文件 SBUF.c文件 #include<reg51.h> #define uint unsigned int #define uchar unsigned char uchar led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar num; //定义引脚变量 sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P1_0=P1^0; /**********************************************************/ //函数名:delay(uint x) //功能:延时程序 //调用函数: //输入参数:x //输出参数: //说明:程序的延时时间为x乘以0.5ms /**********************************************************/ void delay(uchar x) { uchar y,z;