09 2018 档案

摘要:一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。 在给出方法之前,先来 阅读全文
posted @ 2018-09-13 17:05 狗尾巴草word 阅读(532) 评论(0) 推荐(0)
摘要:文章结构: ——> 一、定时器基本介绍 ——> 二、普通定时器详细介绍TIM2-TIM5 ——> 三、定时器代码实例 一、定时器基本介绍 之前有用过野火的学习板上面讲解很详细,所以直接上野火官方的资料吧,作为学习参考笔记发出来 二、普通定时器详细介绍TIM2-TIM5 2.1 时钟来源 计数器时钟可 阅读全文
posted @ 2018-09-13 17:04 狗尾巴草word 阅读(10853) 评论(0) 推荐(0)
摘要:一、介绍 首先我们需要了解一个内存映射: stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。 RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RA 阅读全文
posted @ 2018-09-13 17:03 狗尾巴草word 阅读(11892) 评论(0) 推荐(2)
摘要:一、串口一的配置(初始化+中断配置+中断接收函数) 二、串口二的配置(初始化+中断配置+中断接收函数) 三、串口三的配置(初始化+中断配置+中断接收函数) 四、串口四的配置(初始化+中断配置+中断接收函数) 注意串口四的中断优先级没有贴出来,和前面的三个一样的配置,为了不占用过多的篇幅就不贴中断优先 阅读全文
posted @ 2018-09-13 17:03 狗尾巴草word 阅读(1423) 评论(0) 推荐(0)
摘要:Code 代表执行的代码,程序中所有的函数都位于此处。 RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。 RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。 ZI-data 代表未初始化的读写数据,程序中定义了但没有初始化的全局变量 阅读全文
posted @ 2018-09-13 17:02 狗尾巴草word 阅读(466) 评论(0) 推荐(0)
摘要:一、介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料: 应当注意:在窗口看门狗中,当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位 【注】图中的WDGTB为3表示2^3 阅读全文
posted @ 2018-09-13 17:01 狗尾巴草word 阅读(1073) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-13 17:00 狗尾巴草word 阅读(275) 评论(0) 推荐(0)
摘要:好久之前的做的笔记,这里贴出。 char String[100];//直接用数组代替指针即可解决 下面代代码下载至单片机中,发现会出现单片机死机问题 然而下面这段代码却能正常执行: 最后改char *String; 为指定字节大小的变量,发现第一处的不能执行的代码可以执行了 总结用sprintf转换 阅读全文
posted @ 2018-09-13 17:00 狗尾巴草word 阅读(592) 评论(0) 推荐(0)
摘要:首先刷入安信可的AiCloud 2.0 SDK文件,AiCloud 2.0具体信息参见AiCloud 1.0 和AiCloud 2.0对比 APP见如下二维码下载。 1、安信可AiCloud 2.0 AT 固件 ai-thinker_esp8266_dout_aicloud_v0.0.0.6_201 阅读全文
posted @ 2018-09-13 16:59 狗尾巴草word 阅读(2452) 评论(0) 推荐(0)
摘要:一、STM32 下不了程序 提示: 用isp把芯片全部擦除再试试,如果可以的话应该是你的程序中禁止调试接口了 不是程序禁止了,是MCUISP这个软件搞的 解决办法:应该还有一根3.3V的线吧 你把3.3V的线连上试试,(两个原因你控制板上GND或VCC有一根没连上,第二个,你的jlink电源线烧了。 阅读全文
posted @ 2018-09-13 16:58 狗尾巴草word 阅读(905) 评论(0) 推荐(0)
摘要:深入浅出 TCP/IP 协议 TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分 阅读全文
posted @ 2018-09-10 23:44 狗尾巴草word 阅读(318) 评论(0) 推荐(0)
摘要:一、0x01~0x04: 这四个功能码都是“读”操作,可分两组记忆,0x01和0x02是一组(bool类型),0x03和0x04是一组(寄存器类型);两组属性差不多如下: 1.都是单数是读取可读可写的数据(coil或者holding),双数只能读取只读数据(input); 2.请求的帧格式类似; 功 阅读全文
posted @ 2018-09-10 23:43 狗尾巴草word 阅读(1876) 评论(0) 推荐(0)
摘要:问题:给定一个字符串Str,分成一个字符串数组,每个数组元素含有x个字符。 分析:这里一个重要的点就是当给定的字符串Str的字符总数不是x的整数倍的时候应该怎么分。 解决办法1: 解决办法2: 一行就解决。 阅读全文
posted @ 2018-09-10 23:42 狗尾巴草word 阅读(132) 评论(0) 推荐(0)
摘要:——以 MySQL为例 阅读全文
posted @ 2018-09-10 23:40 狗尾巴草word 阅读(189) 评论(0) 推荐(0)
摘要:泛型类 ——代码参考:java核心技术 卷1 第十版 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class Pair<T> { private T first; private T second; //构造器 public Pair() { 阅读全文
posted @ 2018-09-10 23:39 狗尾巴草word 阅读(160) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-10 23:38 狗尾巴草word 阅读(119) 评论(0) 推荐(0)
摘要:JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JV 阅读全文
posted @ 2018-09-10 23:37 狗尾巴草word 阅读(120) 评论(0) 推荐(0)
摘要:先新建一个文件夹kun,kun就是类所在的package。新建一个java文件。 HelloWorld.java的代码如下: 做如下执行: 阅读全文
posted @ 2018-09-10 23:37 狗尾巴草word 阅读(171) 评论(0) 推荐(0)
摘要:以上三种方式在效率上递增,用BufferedInputStream效率最高(特别是对小文件)。 另外,对于BufferOutputStream和FileOutputStream也是一样,BufferOutputStream的write是把字节写入自带的缓存中(flush之后才向硬盘写),而FileO 阅读全文
posted @ 2018-09-10 23:36 狗尾巴草word 阅读(1987) 评论(0) 推荐(0)
摘要:java中接口是不能实例化的,然而像下面这种用法是可以的: 主要看这二行: 去List找源码 List是接口没有实现,去找一个实现了List的类(ArrayList就可以) 可以看到实际上是返回了一个Itr: Itr的定义在下面: 一个实现了Iterator接口的私有类。这样以来就明朗了 阅读全文
posted @ 2018-09-10 23:36 狗尾巴草word 阅读(508) 评论(0) 推荐(0)
摘要:操作系统:Ubuntu18.04 EclipseVersion: Oxygen.3a Release (4.7.3a)Build id: 20180405-1200 ———————————————————————————————————————————————— Eclipse默认是无法支持java 阅读全文
posted @ 2018-09-10 23:35 狗尾巴草word 阅读(569) 评论(0) 推荐(0)
摘要:window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,点击如下下载按钮: 在下载页面中你需要选择接受许可,并根据自己的系统选择 阅读全文
posted @ 2018-09-10 23:34 狗尾巴草word 阅读(644) 评论(0) 推荐(0)
摘要:java原生对串口的支持只有javax.comm,javax.comm比较老了,而且不支持64位系统,我在看jlibmodbus(一个java实现的modbus协议栈)的时候发现了几个可供使用的java操作串口的扩展类库。 1.RXTX 官网:http://fizzed.com/oss/rxtx-f 阅读全文
posted @ 2018-09-10 23:34 狗尾巴草word 阅读(982) 评论(0) 推荐(0)
摘要:NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。 对于M3和M4内核的MCU,每个中断的优先级都是用寄存器中的8位来设置的。8位的话就可以设置2^8 =256级中断,实际中用不了这么多,所以芯片厂商根据自己生产的芯片做出了调整。比如ST的 阅读全文
posted @ 2018-09-10 23:29 狗尾巴草word 阅读(1293) 评论(0) 推荐(0)
摘要:一、什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能 阅读全文
posted @ 2018-09-10 23:29 狗尾巴草word 阅读(823) 评论(0) 推荐(0)
摘要:Ⅰ、写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了。 STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。 现在S 阅读全文
posted @ 2018-09-10 23:28 狗尾巴草word 阅读(630) 评论(0) 推荐(0)
摘要:一、硬件 如下图所示,485芯片链接到单片机的USART2上,但是默认的USART2并不是在PD5和PD6上,这里是需要重映射的。另外PG4作为485收发的控制(在485协议中,RE、DE同时为高电平那么芯片使能发送,如果同时为低电平那么芯片使能接收) 二、软件设计 1.软件功能 默认485芯片是接 阅读全文
posted @ 2018-09-10 23:27 狗尾巴草word 阅读(8485) 评论(0) 推荐(1)
摘要:问题: (1)下面界面中找不到设备 (2)下载程序的时候提示“ no cortex m sw divice ” 然后是“target dll has been cancelled” 如果生成工程的时候使用的是CubeMX,且第一次下载能行,再下载就没救了,怎么也下载不进去,那么解决办法如下: 在Cu 阅读全文
posted @ 2018-09-10 23:27 狗尾巴草word 阅读(3736) 评论(0) 推荐(0)
摘要:1.判断地址、校验 2.读取本机数据并校验打包 3.发送数据包 4.本机数据长度比要读取的长度短怎么办 4.校验错误怎么办 阅读全文
posted @ 2018-09-10 23:26 狗尾巴草word 阅读(4805) 评论(1) 推荐(0)
摘要:功能需求: (1)对接收的字符串原样返回(每10个字符一次)。 (2)发送一个字符串完成后改变LED的状态。 1.创建工程 使用的是F407Discovery,4个LED对应PD12-PD14。 (1)使用外部高速时钟 (2)推挽输出4个LED输出端口 (3)使用usart2 (4)外部8M,使用H 阅读全文
posted @ 2018-09-10 23:25 狗尾巴草word 阅读(7547) 评论(1) 推荐(2)
摘要:一、查询模式 1. 二、中断模式 1.中断接收。 1.1先看中断接收的流程(以 USART2 为例) 在启动文件中找到中断向量 USART2_IRQHandler 找到USART2_IRQHandler的函数定义 可以看到这里又转到另一个函数里去了,再找下去: 该函数的源码: 也就是说,当串口中断触 阅读全文
posted @ 2018-09-10 23:25 狗尾巴草word 阅读(38768) 评论(6) 推荐(7)
摘要:一、Cube配置 需求:使用PD10作为外部中断(下降沿触发)控制LED(PD12-PD14) 1.选型 STM32-F4-Discovery使用的是F407VGT6. 2.使能时钟 3.设置GPIO PD12-PD15对应4个LED,设置为输出 使用PD10作为外部中断,于是PD10设置为GPIO 阅读全文
posted @ 2018-09-10 23:24 狗尾巴草word 阅读(24513) 评论(0) 推荐(3)
摘要:1.中断触发过程 对主程序压栈——把中断服务函数的地址写入到程序计数器(PC)——执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示,EXTI0中断服务函数的地址是0x00000058。意思就是如果触发了外部中断那么就从0x00000 阅读全文
posted @ 2018-09-10 23:23 狗尾巴草word 阅读(2709) 评论(0) 推荐(0)
摘要:一 初始化GPIO 使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成。 自动生成的HAL库GPIO初始化代码: 顺序:(1)定义结构体变量。(2)使能时钟。(3)配置初始化电平。(4)通过结构体变量初始化GPIO。 1.首先定义一个结构体变量GPIO_InitSt 阅读全文
posted @ 2018-09-10 23:21 狗尾巴草word 阅读(6076) 评论(0) 推荐(2)