
嵌入式ARM
xukai871105
现布勒中国物联网工程师 前阿里云工程师 专注于物联网IoT M2M应用
展开
-
Nor Flash和Nand Flash用途
Flash主要分为两种Nor Flash和Nand Flash,这两种flash的结构存在较大的差异。最先出现的Nor flash,采用并口输入输出数据,速度快,CPU可以直接从Nor Flash中取指令执行专门术语叫XIP (eXecute In Place),但是价格昂贵,同时,由于要占用地址线,容量不能很大。基于以上的缺点,三星公司开发了Nand Flash结构,这种结构采用转载 2013-10-27 13:22:18 · 8683 阅读 · 0 评论 -
FreeRTOS STM32移植笔记
1.前言 【1】其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。 【2】虽然有官方移植代码,但是官方移植版本为STM32的V2.X库,与现在流行的V3.5有比较大的区别。本笔记也是总结网上几篇学习笔记,主要说明如果使用V3.5库,需要做哪些修改...原创 2013-10-26 22:11:08 · 73744 阅读 · 26 评论 -
IAR使用技巧——如何使用合适的版本打开IAR工程
0.前言 在与ARM Cortex M3/4有关的开发中,经常使用IAR和Keil这样的集成IDE。IAR相比于Keil,经常出现大版本的更新,这就导致的以前建立的工程不能使用新版本打开。最典型的情况便是IAR 5.5建立的工程使用IAR 6.3打开便会产生问题。在正确的方法自然是使用合适的软件打开合适的工程,那么本文就总结如何找到找到IAR工程正确的版本号。1.各种案例...原创 2014-07-05 23:49:08 · 18513 阅读 · 8 评论 -
MODBUS协议整理——功能码简述
【MODBUS协议整理——汇总】 1.MODBUS功能码简述 下表列出MODBUS支持的部分功能代码:以十进制表示。表1.1 MODBUS部分功能码 代码 中文名称 寄存器PLC地址 位操作/字操作 操作数量 01 读线圈状态 ...原创 2013-11-12 20:59:37 · 57410 阅读 · 2 评论 -
MODBUS协议整理——读线圈寄存器01H、读离散输入寄存器02H
2.MODBUS指令说明2.1 读线圈寄存器01H1) 描述:读MODBUS从机线圈寄存器当前状态。2) 查询:例如从机地址为11H,线圈寄存器的起始地址为0013H,结束地址为0037H。该次查询总共访问37个线圈寄存器。表2.1.1 读线圈寄存器-查询Hex从机地址11功能码原创 2013-11-14 21:31:53 · 37410 阅读 · 7 评论 -
MODBUS协议整理——读保持寄存器03H、读输入寄存器04H
2.3 读保持寄存器 03H1) 说明读保持寄存器。可读取单个或多个保持寄存器。2) 查询从机地址为11H。保持寄存器的起始地址为006BH,结束地址为006DH。该次查询总共访问3个保持寄存器。表2.3.1 读保持寄存器-查询 Hex从机地址11功能码03寄原创 2013-11-14 22:07:59 · 50180 阅读 · 8 评论 -
MODBUS协议整理——写单个线圈寄存器05H、写单个保持寄存器06H
2.5 写单个线圈寄存器 05H1) 说明写单个线圈寄存器。FF00H值请求线圈处于ON状态,0000H值请求线圈处于OFF状态。05H指令设置单个线圈的状态,15H指令可以设置多个线圈的状态,两个指令虽然都设定线圈的ON/OFF状态,但是ON/OFF的表达方式却不同。2) 查询从机地址为11H,线圈寄存器的地址为00ACH。使00ACH线圈处于ON状态,即数据内容为FF00H。原创 2013-11-17 11:19:57 · 44978 阅读 · 8 评论 -
MODBUS协议整理——汇总
Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。MODBUS是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。Modbus比其他通信协议使用的更广泛的主要原因有:1.公开发表并且无版税要求2.相对容易的工业网络部署原创 2013-11-17 11:37:54 · 39005 阅读 · 11 评论 -
FreeRTOS学习笔记——任务间使用队列同步数据
在嵌入式操作系统中队列是任务间数据交换的常用手段,队列是生产者消费者模型的重要组成部分。FreeRTOS的队列简单易用,下面结合一个具体例子说明FreeRTOS中的队列如何使用。原创 2013-12-04 20:42:08 · 50958 阅读 · 4 评论 -
MODBUS学习笔记——modbus tk modbus TCP主机实现
0.前言 modbus是一种古老但是高效的应用层协议。在嵌入式和PC机领域有多种方法实现modbus协议栈,modbus又分为从机和主机,从机和主机在协议栈的实现上存在不同。在不能运行linux的嵌入式系统中,freemodbus是一个完善的从机协议栈,在能够运行linux的嵌入式系统中存在多种选择,而modbus tk是使用python语言实现的modbus协议栈,该函数库即支持主机也...原创 2014-03-23 20:11:44 · 71713 阅读 · 20 评论 -
freemodbus modbus TCP 学习笔记
使用modbus有些时间了,期间使用过modbus RTU也使用过modbus TCP,通过博文和大家分享一些MODBUS TCP的东西。在嵌入式中实现TCP就需要借助一个以太网协议栈,在这里我选择最简单的uIP协议栈。uIP协议栈简单易用方便上手,相比于LwIP无论是移植还是使用难度都低些,这样就可以把更多的精力花在modbus tcp协议本身而不必花大量的时间研究以太网协议原创 2014-03-20 22:38:19 · 81785 阅读 · 24 评论 -
前后台系统的低功耗编程思想——STM8平台
1.前言 工作之后接触了“低功耗”,开始搜索各种各样的低功耗MCU。网络是一个非常自由的地方,你总可以看到各种关于哪个MCU功耗更低的论战,在这些论战中我查阅了几乎所有低功耗MCU的特性,例如MSP430、EFM32还有STM32L等,网络论战的核心便是哪款MCU的休眠电流更低。看多了资料我便发现,这些低功耗的MCU如何使用,低功耗MCU的程序编写和普通MCU编程有什么区别。原创 2013-10-22 21:48:37 · 8888 阅读 · 8 评论 -
GPS nmealib学习笔记
nmealib是一个基于C语言的用于nmea协议的开源库。虽然nmea体积小巧,但是却具备了不少功能。原创 2013-10-17 11:12:59 · 15285 阅读 · 7 评论 -
PCATTCP使用笔记——TCP UDP速度测试工具
PCATTCP的前身为Test TCP,Test TCP是BSD操作系统的原生工具,该工具通过控制台输入参数,用于测试TCP或者UDP的通信速度。该项目于1984年启动,现在该工具的源代码早已开放。PCATTCP是Test TCP的windows移植版本,是一个用于测试TCP和UDP通信速度的windows控制台程序。原创 2015-01-25 11:52:06 · 20337 阅读 · 4 评论 -
MODBUS协议整理——写多个线圈寄存器0FH,写多个保持寄存器10H
2.7 写多个线圈寄存器 0FH1) 说明写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。2) 查询从机地址为11H,线圈寄存器的起始地址为0013H,线圈寄存器的结束地址为001CH。总共访问10个寄存器。寄存器内容如下表所示。表2.7.1 线圈寄存器0013H到001CH001AH原创 2013-11-17 11:22:38 · 50946 阅读 · 3 评论 -
多功能电表使用经验
前言两年之前使用过多功能电表,即具有RS485通信接口的智能电表。可通过具体的RS485指令访问电表,电表根据指令返回具体参数,例如总电量,上月总电量,上两月总电量等。在应用这种多功能电表时积累了一些经验,借博客总结整理一下!总的来说,多功能电表的使用有三个难点,第一,多功能电表的地址采用BCD编码,并符合小端模式,即发送地址域数据时低地址数据在前,高地址数据在后;第二,在多功能电表的数据域数原创 2013-02-28 21:20:17 · 8991 阅读 · 2 评论 -
socket 套接字编程笔记——IP地址转换
0.前言 网上有很多使用arduion和树莓派连接yeelink的例子,硬件和软件的实现方式都非常简单。通过学习这些例子一下激发我学习嵌入式网络的动力。虽然使用arduion连接yeelink简单方便稳定可靠,但是依然像使用嵌入式以太网协议栈连接yeelink,例如MCU使用STM32,网卡芯片使用ENC28J60,以太网协议栈使用LwIP。虽然这样做硬件软件都要复杂的多,但是也多了原创 2013-11-14 21:05:50 · 7151 阅读 · 0 评论 -
notepad++ 配置笔记
0.notepad++简介 Notepad++是一套非常有特色的自由软件的纯文字编辑器,有完整的中文化接口及支援多国语言撰写的功能。它的功能比 Windows 中的 Notepad更强大。Notepad++ 不仅有语法高亮功能,也有语法折叠功能,并且有大量扩展插件。1.相关设置【1】设置->首选项 设置tab 【2】设置->首选项 设置函数和原创 2014-06-02 12:02:12 · 4992 阅读 · 0 评论 -
ARM JATG/SWD电路总结
设计原理图或是调试的时候总是忘记ARM JTAG或是SWD相关接口。临时网上查阅资料总不是很放心,其实安装JLINK ARM之后,在自带的说明文件中有JTAG和SWD电路的详细说明,官方的自然可以放心一些。文件编号UM08001_JLINKARM.pdf.下面便是JTAG的具体接口和CPU连接示意图下面是SWD接口引脚示意图和CPU接口示意图,很多的情况下SWD更受欢迎原创 2013-10-20 09:23:18 · 5861 阅读 · 0 评论 -
IAR 用户关键字高亮
在使用IAR的时候,总是觉得写代码的时候少了点什么。IAR默认中,C语言的关键字均有高亮功能,但是stdint中的关键词却没有高亮。例如 uint8_t uint8_16 int8_t int16_t写嵌入式程序的时候int char反而用的不同。偶然发现IAR支持用户关键字,只要把定义关键字写在一个TXT文件中即可。见图1和图2所示。图1 选择用户关键字文件原创 2013-05-20 12:59:08 · 9021 阅读 · 1 评论 -
STM32使用问题总结
1.串口发送第一个字节丢失问题代码void USART1_SendBuf(uint8_t *pbuf , uint8_t len){ for( uint8_t i = 0 ; i < len ; i++ ) { /* 写一个字节到USART1 */ USART_SendData(USART1, *pbuf++); /* 等待发送结束 */ whil原创 2013-09-06 10:20:40 · 3215 阅读 · 2 评论 -
图解Putty Key Generator使用方法
在windows上使用Git工具往往需要使用SSH Key,和Linux系统使用不同,windows系统中常通过GUI方式生成SSH Key,若使用GUI方式那么PuTTY Key Generator便是一个不错的工具。如果在windows环境下需要先安装Git for windows,如果追求更良好的用户体验可安装SourceTree。原创 2015-06-23 16:06:05 · 33646 阅读 · 2 评论 -
FreeRTOS学习笔记——互斥型信号量
在嵌入式操作系统中互斥型信号量是任务间资源保护的重要手段。原创 2015-02-27 08:50:09 · 31792 阅读 · 6 评论 -
FreeRTOS学习笔记——二值型信号量
在嵌入式操作系统中二值型信号量是任务间、任务与中断间同步的重要手段。FreeRTOS的二值型信号量简单易用,下面结合一个具体例子说明FreeRTOS中的二值型信号量如何使用。原创 2015-01-26 15:38:16 · 42365 阅读 · 3 评论 -
u-center设置笔记
0.前言 前些时间弄了GPS,GPS模块为uBLOX公司的某个产品。uBlox提供了一个很有用的GPS模块配置和调试工具——ucenter,使用ucenter软件可以修改nmea语句的输出内容和时间间隔,通过这篇博文和大家分享一下设置经验。 【GPS nmealib学习笔记】 u-center软件版本为81.修改nmea语句输出内容 在GPS默认配...原创 2014-02-26 15:03:28 · 40712 阅读 · 21 评论