摘要: 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。 在给出方法之前,先来 阅读全文
posted @ 2018-08-21 15:11 竹风清 阅读(5260) 评论(0) 推荐(2) 编辑
摘要: 注意:如果APB1预分频系数为1,则频率不变,否则TIMxCLK的时钟输入频率是APB1时钟的2倍频,这个是通过这句函数实现:18 //设置低速AHB时钟(APB1)为HCLK的2分频(TIM2-TIM5输入TIMxCLK频率将为72MHZ/2x2=72MHZ输入) 19 RCC_PCLK1Config(RCC_HCLK_Div2); 阅读全文
posted @ 2018-08-16 21:54 竹风清 阅读(112250) 评论(5) 推荐(8) 编辑
摘要: STM32串口通信配置(USART1+USART2+USART3+UART4)串口中断函数也用了4种不同的收发方式实现,有定时器和非定时器,串口一也有用独立看门狗防止程序跑飞 阅读全文
posted @ 2018-08-16 17:38 竹风清 阅读(98871) 评论(1) 推荐(4) 编辑
摘要: stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。 RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。 Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失, RAM可以理解为内存,用来存储代码运行时的数据,变量等等。掉电数据丢失。 STM32将外设等都映射为地址的形式,对地址的操作就是对外设的操作。 stm32的外设地址从0x4000 0000开始,可以看到在库文件中,是通过基于0x4000 0000地址的偏移量来操作寄存器以及外设的。 一般情况下,程序文件是从 0x0800 0000 地址写入,这个是STM32开始执行的地方,0x0800 0004是STM32的中断向量表的起始地址。 在使用keil进行编写程序时,其编程地址的设置一般是这样的: 阅读全文
posted @ 2018-08-16 15:36 竹风清 阅读(122991) 评论(2) 推荐(12) 编辑
摘要: Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 ,简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+ RO Data + RW Data 阅读全文
posted @ 2018-08-15 22:57 竹风清 阅读(3635) 评论(0) 推荐(0) 编辑
摘要: 窗口看门狗呵独立看门狗的区别:1、计数所用的时钟源不同: 独立看门狗由内部专门的 40Khz 低速时钟; 窗口狗使用的是 PCLK1 的时钟,使用前需要先使能时钟,而独立狗不需要使能时钟操作; 2、中断不都有: 独立看门狗没有中断,超时直接复位; 窗口狗有中断,超时可以在中断中做复位前的函数操作或者重新喂狗; 3、使用条件推荐: 独立看门狗,一般用于,避免程序跑飞或者死循环; 窗口狗避免程序不安预定逻辑执行,比如先于理想环境完成,或者后于极限时间超时; 4、计数方式不一样: 独立狗的寄存15:0有效,是12位递减的; 窗口狗的寄存器低八位有效,是6位递减的(窗口值最大0x7F); 5、超时复位时间范围不同 独立看门狗:计数器值(tr) < IWDG重装载值时,进行喂狗 窗口看门狗:0x40 < 计数器值(tr) < 窗口值(wr) 时,这期间进行喂狗 窗口狗(0x40是固定的,具体减计数什么时候到0x40由你的预分频值决定) 阅读全文
posted @ 2018-08-15 20:47 竹风清 阅读(26286) 评论(1) 推荐(6) 编辑
摘要: U盘作为一个引导盘,在装机过程中显得十分的方便,有时候我们可以将U盘做成一个PE启动盘,有时我们也可以直接将U盘做成一个操作系统光盘的镜像。 但是有时候我们辛辛苦苦将U盘做成了引导盘了,关机---》重启----》进入引导界面(有的是ESC有的是F12等) 但是,!!!启动界面我们没有找到我们做好 的启动U盘 阅读全文
posted @ 2018-06-27 15:16 竹风清 阅读(2321) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-05-05 15:32 竹风清 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 日常办公和工作中,对于员工/学生来说,拥有多台电脑是很正常的事,比如一个研究生或者本科生,一半人手一台笔记本是再正常不过的事了,虽说笔记本功能已经足够强大,但是在办公或者学习中,有时候我们会更亲睐于使用台式机电脑进行课题的研究学习或者说是办公,笔记本作为便捷式移动办公,或者娱乐用。那么问题来了,是否我们平时需要用到的软件按都需要分别在台式机和笔记本上对应全部安装呢?答案是不必要的,对于这个答案,如何平衡两台电脑的协调使用,笔者给出的建议是使用电脑的远程桌面功能。 电脑的远程桌面固然好用,但是一旦两台电脑不在同一个局域网之下,如何联通是一个技术问题。但是如今路由器功能已经很完美了,通过路由器下的虚拟服务器功能可以很好的解决这个问题。接下来是设置路由器虚拟服务器功能,实现不再同一局域网之下实现远程桌面功能。 阅读全文
posted @ 2018-05-02 10:49 竹风清 阅读(32056) 评论(0) 推荐(2) 编辑
摘要: 第二步、编辑项目文件 找到Format Version 12.00 ,将数字改为11.00 再找到#Visual Studio 14 将数字改为2010 第四步、编辑工程个文件 右键-用记事本打开该文件 找到ToolsVersion = "14.0" 将数字改为4.0 然后Ctrl+F 查找v140(共有四处) 将包含v140的四行全部删除 保存并退出 阅读全文
posted @ 2018-04-27 10:32 竹风清 阅读(1672) 评论(0) 推荐(1) 编辑