stm32学习笔记
文章平均质量分 91
白面小书生
我猜到你过程却没有猜到结果、
展开
-
STM32 时钟系统
众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么 STM32 要有多个时钟源呢? 因为首先STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及 RTC 只需要几十 k转载 2016-02-20 18:05:29 · 746 阅读 · 0 评论 -
对寄存器操作的通用方法总结
接触了一阵子的STM32函数库,使用起来挺方便的,但是很少有处理器会有函数库,大部分情况下还是要自己来对寄存器进行操作,所以还是不要生疏了对寄存器的操作。对寄存器的操作有时候要考虑对其不同的位进行先后顺序不同的设置,因为这样可能达不到预期的效果,这个不太好总结,但是对寄存器操作的方法是固定的。在这之前,首先要明白逻辑运算符(! && ||)和位运算符(> ~ | ^ &)的区别,对寄存器的操作使用转载 2017-10-11 15:17:32 · 1039 阅读 · 1 评论 -
关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别
1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。2、下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实转载 2017-10-12 14:08:37 · 1211 阅读 · 0 评论 -
C语言位域精解
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位转载 2017-10-12 15:32:52 · 364 阅读 · 0 评论 -
STM32通过DMA采集多通道AD
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境:主机:XP开发环境:MDK4.23MCU:STM32F103CBT6说明:通过脚PA1,PA2采集AD。每路AD采集10次。参考链接:http://hi.baidu.com/kangxuebin/item/f4f4370f转载 2017-10-30 13:26:10 · 876 阅读 · 0 评论 -
STm32驱动74HC595引脚图时序图工作原理
74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源,用3个io就可以控制8个数码管的引脚,他还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片是驱动数码管的神器.应用非常广泛,点这里可以下载完整的74HC595中文资料:http://www.51转载 2017-10-24 17:38:19 · 17230 阅读 · 4 评论 -
Jlink接口的Jtag和SWD接口定义
版权声明:本文为博主原创文章,转载请注明。 博客已转到 http://blog.csdn.net/upc_xbtJlink仿真器接口仿真器端口连接目标板备注1. VCCMCU电源VCCVCC2. VCCMCU电源VCCVCC3. TRSTTRSTTest ReSeT/ p转载 2017-11-10 10:49:18 · 3760 阅读 · 0 评论 -
EE-SX672 光眼
EE-SX672为光电传感器,属于 NPN输出,应答频率为1KHz,常闭。EE-SX672光电传感器有四个接线脚,接法如下图: 入光动作的话将+线和L线短接,即从无光变成有光时导通。 遮光动作的话将+线和L线分开,即从有光变成无光时导通。原创 2017-11-16 11:07:32 · 5701 阅读 · 2 评论 -
STM32如何使用内部时钟源当系统时钟
由于最近老师让做一个项目,要用到STM32但是考虑成本问题,决定不用外部时钟,所以在网上搜集整理了一些资料,加上自己的一些想法。参考资料:http://bbs.ednchina.com/BLOG_ARTICLE_3011869.HTMhttp://bbs.21ic.com/icview-587714-1-1.html首先在主程序中注释掉S转载 2017-12-13 12:07:08 · 13008 阅读 · 0 评论 -
定时器TIM和PWM的输出
本帖最后由 明少丶 于 2014-7-27 00:42 编辑 学习完前面的STM32系统框架,时钟,GPIO和按键,我们开始由浅入深的逐个攻破STM32的所有功能。我自己用的是stm32f103rc可以看看它的功能描述: 内容是:ARM 32位 cortex-M3内核 最高工作频率72MHZ 256KB Flash 48KB SRAM内嵌RC振荡时钟转载 2017-12-16 14:59:03 · 3177 阅读 · 0 评论 -
stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
初学STM32,在RealView MDK 环境中使用STM32固件库建立工程时,初学者可能会遇到编译不通过的问题。出现如下警告或错误提示: warning: #223-D: function "assert_param" declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); 这时候我们需要在“Target Optio转载 2017-10-11 15:16:49 · 3448 阅读 · 0 评论 -
单片机按键扫描
新型的按键扫描程序 不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。 同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。 对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了转载 2017-10-11 11:02:15 · 2037 阅读 · 1 评论 -
STM32 时钟系统
众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么 STM32 要有多个时钟源呢? 因为首先STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及 RTC 只需要几十 k转载 2017-10-19 16:16:48 · 404 阅读 · 0 评论 -
STM32串口第一个字节丢失问题的分析过程
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。转载 2016-02-20 18:00:27 · 773 阅读 · 0 评论 -
STM32的bootloader IAP编程(转载总结)
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32 Bootloader设计。首先谈谈stm32的ISP和IAP区别和联系。ISP(In-System Programming)在系统可编程,指电路板上的空白器转载 2016-02-20 18:10:48 · 1411 阅读 · 0 评论 -
Stm 32 IAP 在线 升级IAP 的 操作
STM32实现IAP功能的学习笔记最近因项目需求要实现STM32的在线升级即IAP功能,先将这几天的学习体会和IAP的具体实现总结出来,分享给大家,希望对同样实现IAP的童鞋有所帮助,文中最后会上传名为STM32_Update.zip的压缩文件里面包含了STM32_App、STM32_MyBoot_V1.0和升级软件STM32_UpdateSoftware的源码文件供大家参转载 2017-09-07 11:28:14 · 1921 阅读 · 5 评论 -
STM32 IAP 在线升级详解
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F转载 2017-09-07 16:23:06 · 381 阅读 · 0 评论 -
stm32串口发送数据,丢失字节问题分析
STM32 串口 发送 必须 先检测 状态,否则 第一个 字节 无法 发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收转载 2017-09-11 14:18:35 · 7323 阅读 · 1 评论 -
STM32 IAP 在线升级详解
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F转载 2017-09-15 16:51:03 · 530 阅读 · 0 评论 -
STM32生成bin文件
方案一:第一步:打开Options for Target ‘target 1’对话框,选择User标签页;第二步:找到fromelf.exe的路径(keil5在ARMCC里)第三步:重点(基路径是工程路径,bin文件是根据axf生成的)接下来要做的要视情况而定:选完fromelf.exe后在输入框中加个空格然后加一串字 : --bin -o ./O转载 2017-09-11 14:26:29 · 2156 阅读 · 0 评论 -
STM32串口下载
1、参考资料 《STM32F1开发指南-库函数版本》-3.4.2 STM32串口程序下载2、PA9(T) PA10(R) 串口下载引脚3、USB/串口转换电路 CH340 FLYMCU4、下载硬件连接:PA9 和 PA10跳线帽 B0和B1和GND跳线帽5、STM32的ISP下载,只能使用串口1,其他串口只能用作串口通信,不能进行串口下载转载 2017-10-08 10:51:38 · 1351 阅读 · 0 评论 -
STM32串口中断卡死主循环问题分析
版权声明:本文为博主原创文章,未经博主允许不得转载。在一项目中,使用STM32作为主控,程序运行一段时间后概率出现主循环卡死现象。问题分析如下:1、程序USART2不停接收并处理串口数据,波特率115200;2、主循环卡死;3、USART1中断及TIM2中断响应函数运行正常;(USART1及TIM2中断优先级均比USART2高)4、出现现象后,拔掉USART转载 2017-09-30 12:26:56 · 1160 阅读 · 0 评论 -
stm32 PB3 PB4 PA15引脚作为普通IO口使用指南
stm32的PB3 PB4 PA15引脚可以在使用SWD仿真和烧录的情况下释放出来,作为普通IO口使用。初始化代码如下:[html] view plain copyGPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Perip转载 2018-01-02 12:27:34 · 2847 阅读 · 0 评论