
stm32
文章平均质量分 70
Andrew_Qian
stay hungry,stay foolish.
展开
-
【转载】keil(MDK-ARM)的调试使用
现在软件的模拟功能都是非常强大,但是有时候会用不好。原文地址:那就看这里吧:http://www.cnblogs.com/strongerHuang/p/5596355.html 1.编译+调试打开软件工程 -> 编译 -> 调试这里的编译建议使用Build Target(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文件。原创 2017-05-08 11:47:58 · 677 阅读 · 0 评论 -
以防忘记,建立stm32工程的过程
然后会弹出manage run -time environment的运行环境界面,必须选择的有CMSIS下的core和device下的startup,至于其它的根据你需要的外设,在stdperiph Driver里面选择相应的外设驱动,比如ADC、GPIO等。需要注意的是,在配置运行环境时,正确配置时,打钩的地方是绿色。未正确配置的话,打钩的地方是黄色。因为往往你选择一个配置,一般还需要选择原创 2017-05-08 11:43:56 · 580 阅读 · 0 评论 -
对GPIO_Init(GPIOx,&GPIO_InitStructure)的理解
今天学习stm32流水灯程序的时候,看到了“GPIO_Init(GPIOB, &GPIO_InitStructure)”这个函数,参数1”GPIOB“很好理解,就是GPIO的外设口B(也可以是A,C,D,E),第二个参数有点不理解,于是查看了下库函数手册,该函数原型是这样的:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_In原创 2017-05-08 11:43:53 · 20534 阅读 · 0 评论 -
【转载】stm32中断学习
中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32原创 2017-05-08 11:43:34 · 880 阅读 · 0 评论 -
GPIO的配置过程
今天看到一篇很好的博文,,看这里:http://www.cnblogs.com/crazyxu/archive/2011/10/14/2212337.html下面总结一下,加深一下理解。要使用GPIO,首先要做五步工作:配置时钟并使能,选择引脚,配置引脚模式,配置引脚翻转速度,最后调用库函数初始化GPIO,将上面的配置写入。首先要了解GPIO的8种模式,真多: (1)浮空输入:In_原创 2017-05-08 11:43:24 · 6547 阅读 · 0 评论 -
keil5之32环境配置
终于配置好了!!又是经过一下午加晚上的奋战,终于把环境配置好了,多亏了我强大的资料整理能力(哈哈)。真是不容易啊,本来打算放弃的,去问问别人吧。但是想想,还是靠自己吧,靠谁都不如靠自己,真是的,慢慢去搜索,去看,去想,总会弄好的。下面简单说一下今天的成果吧。 首先,下载完keil5后,管理员打开,弹窗直接确定,按个无关紧要,接下来,点击pack installer,在这里面一定要先更新,切原创 2017-05-08 11:42:42 · 4913 阅读 · 0 评论 -
初遇stm32
刚开始接触32,建一个工程都这么费劲,可能是keil安装时一些文件和库没有安装完整,真是坑啊。回头可能还要从新安装,然后开始新的学习,争取十天之内入门32,在博客园这个强大的技术支持下,想不入门都难。感觉以后要在园子里混了。就是一点不好,手机APP开发的不是很好,安装才7k+,真是想不通。还是要多看,多想,没人能一下子全都会的,都是慢慢积累的。今天是圣诞节,出去吃了兰州拉面,已经吃了三天的原创 2017-05-08 11:42:37 · 382 阅读 · 0 评论 -
stm32通过电调带动电机(可按键调速)
这几天在做32通过电调带动电机的实验,上网一查,发现这方面的资料很少,经过自己的亲自实践,总结出以下经验,供大家参考。论坛上也有很多人说自己在做,但是都遇到了同样的瓶颈。我想他们大多是pwm的频率和占空比没有调到合适的值吧。首先,我在网上只找到一片很好的文章,是瑞生大神写的:http://www.rationmcu.com/lpc1114/1126.html我的电机是银燕2原创 2017-05-05 19:52:11 · 11828 阅读 · 7 评论 -
STM32与HC-SR04超声波测距
首先,先来看一下这个模块的基本功能和原理。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。像智能小车的测距以及转向,或是一些项目中,常常会用到。智能小车测距可以及时发现前方的障碍物,使智能小车可以及时转向,避开障碍物。注意是5v输入,但是我用stm32 的3.3v输入也是没有问题的。原创 2017-06-08 20:39:31 · 68695 阅读 · 90 评论 -
stm32的VCC/VDD/VSS/VEE
先看一下stm32vet6的引脚图吧 电路设计以及PCB制作中,经常碰见电源符号:VCC、 VDD、VEE、VSS,他们具有什么样的关系那? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压 VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意思,通常指电路公共接地原创 2017-06-15 17:45:11 · 5054 阅读 · 1 评论 -
大话flash和eeprom
最近在看代码的时候,遇到了一个使用FLASH模拟EEPROM的情况,看到这个我当时是一脸蒙蔽啊,对于一个有时候连FLASH和EEPROM都分不清的人来说,怎么可能读懂用FLASH来模拟EEPROM呢?这段程序看的真是如浏览天书一般。上网一查,原来这个作用还挺常用的。于是痛下决心,一定要搞懂这两个纸老虎。EEPROM 1、FLASH是什么?EEPROM又是什么? EE原创 2017-10-03 11:45:17 · 423 阅读 · 0 评论 -
关于实时时钟模块DS1302使用心得
最近在做万年历,用到实时时钟DS1302模块,花了两天时间看资料和写驱动,想记录一下我的学习经过,顺便做一下总结。首先就是在图书馆查各种资料,于是查到的大多是这些,主要时硬件方面的资料: 其实能查到很多资料,但是能为我们所用的不是很多。在使用一个芯片时,我一般时按照一下步骤去学习:1、芯片介绍;2、查看引脚定义;3、外围电路原创 2017-10-22 23:44:21 · 31946 阅读 · 3 评论 -
灵感手环第一步——0.96寸OLED显示实验
这算是我这个系列的第一篇博客吧。首先要解决的就是屏幕显示问题。我选择了目前新兴起的OLED显示模块。OLED(OrganicLightEmittingDiode),中文译作有机发光二极管,目前被广泛的应用于移动设备甚至电视上。它既拥有超快的响应速度和轻薄的优势,又存在寿命与对大尺寸支持不足的瓶颈。OLED的优点1、厚度可以小于1毫米,仅为LCD屏幕的1/3,并且重量也更轻;原创 2017-12-23 00:10:37 · 8845 阅读 · 3 评论 -
关于STM32驱动DS1302的一点思考
之前用51驱动过DS1302,没用多久就输出了正确的时间。当时以为这块芯片其实没啥,很简单。但是现在用STM32做项目,用到同样的芯片,以为这有何难,只要把那个程序拿过来复制黏贴改一下IO设置不就行了?但是事情远没有想想的那么简单。 经过3天的挣扎,现在才知道当时自己是多么天真。关于DS1302的基本操作可以看这里:http://www.cnblogs.原创 2017-12-28 15:28:39 · 4138 阅读 · 7 评论 -
STM32标准库中的GPIO_Pin_N与GPIO_PinSourceN话题
最近做项目遇到这个问题,上网看到这篇文章,感觉很好,是人家的实际项目中总结出来的,转载过来,用以学习交流。一开始我也是分不清这两个参数的定义,总是以为是一样的,没注意他们的区别,以至于在按键消抖上面,总是不能很好的消抖,按下按键屏幕老是闪一下。原因就是我把该写GPIO_Pin_N的写成了GPIO_PinSourceN,其实这点和keil官方的MDK有关系,手写代码的时候,编辑器首先提示的是GPIO转载 2018-01-23 10:47:37 · 23147 阅读 · 1 评论 -
使用notepad++作为keil的外部编辑器
之前一直不喜欢keil的编辑界面,但是又不想太浮夸。看到很多群里有人用vscode写stm32的序,但是直接用vscode编写的花,各种设置很麻烦。而且还不能调试。于是想到有没有一个轻便简约的外部编辑器呢?你还别说,真有。notepad++就是这样一款轻量级的外部编辑器。可以说是秒开。notepad官网:https://notepad-plus-plus.org/可以下载最新版,安原创 2018-01-06 23:36:57 · 8373 阅读 · 0 评论 -
趣谈STM32的ADC与DMA
最近在做ADC采样电池电压,有时候有点纠结,不用DMA我能很好的把电压给采集出来,那么我为什么要费那些精力去使用DMA呢?用了DMA万一搞错了呢,不用DMA的效果还没有影响到让我非用不可的地步。我有时候确实会有这些小纠结,不想太麻烦,一分钟能做出来的事情,不想用两分钟做出来。但是看到网上很多人一谈到ADC立马就开始说各种DMA,仿佛这种类似的数据外设到内存的传输非DMA不可。网上的一篇文章详细原创 2018-01-25 16:36:19 · 6427 阅读 · 4 评论 -
关于OELD屏显示电池电量的简易方法
如何采集电源电压大家可能都熟悉,stm32的ADC+DMA能很方便迅速的帮我们采集到自己想要的电压数据。使用DMA进行数据搬运也能很好的减轻CPU的一部分压力。但是这样只是第一步——数据。用户想看到的有时候并不是数据,他们想要更直观方便的看到自己设备的电量。这就要求我们能在显示屏上通过更直观的方法显示电量。(怎么样,下面这样够直观吧。)这也是现在嵌入式设备中常用的方法,用一个小电池图标原创 2018-01-26 16:15:12 · 14274 阅读 · 6 评论 -
mpu6050参数获取
MPU6050其实就是一个 I2C 器件,里面有很多寄存器(但是我们用到的只有几个),我们通过读写寄存器来操作这个芯片。所以首要问题就是 STM32 和 MPU6050 的 I2C 通信。1、配置 STM32 (用I2C1:PB6——SCL;PB7——SDA) 1)时钟 RCC RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB原创 2017-05-08 11:44:02 · 2337 阅读 · 1 评论 -
stm32中的延时函数
//粗延时函数,微秒void delay_nus(u16 time){ u16 i=0; while(time--) { i=10; //自己定义 while(i--) ; }} //毫秒级的延时void delay_nms(u16 time){ u16 i=0; while(原创 2017-05-08 11:44:08 · 4582 阅读 · 0 评论 -
ROM和RAM的故事
在公众号里看到一篇很好的文章讲解rom和ram,之前也是一直不能理解两者的区别,今天就转载记下来吧。也方便大家学习。因为我刚开始学习的时候总喜欢刨根问底,一个问题要是不搞清楚,后面学习都会很吃力的。所以学习时,遇到不会的东西,赶紧上网查查,网上什么都有。哈哈。用我的理解就是一句话,ROM掉电时数据不会丢失,RAM掉电时数据就跑没没了。 ROM和RAM指的都是半导体存储器,ROM是Read原创 2017-05-08 11:48:04 · 1466 阅读 · 0 评论 -
【转载】stm32的GPIO八种工作模式
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流原创 2017-05-08 11:46:40 · 578 阅读 · 0 评论 -
ST-LINK调试完成
今天真是一波三折啊。买回来的st-link刚开始不会用,各种百度,还好有两个很好的教程。连接发在下面吧。http://blog.youkuaiyun.com/TXF1984/article/details/46453763http://blog.sina.com.cn/s/blog_4a4d13de0102vbsj.html看了这两个教程,基本上就对st-link有了基本的认识,但是想要熟练使用,除了原创 2017-05-08 11:46:24 · 2552 阅读 · 0 评论 -
【stm32中断优先级--珍藏版】
看了这么久,一直不理解中断优先级,还有中断嵌套。stm32提供了多种嵌套方式,搞的我真是头昏脑涨。今天终于看到了一个通俗解释中断优先级的博客。算是理解了一点吧。原文地址:http://blog.sina.com.cn/s/blog_8a951ceb01015ewc.html 很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()——配置优先级分原创 2017-05-08 11:46:08 · 506 阅读 · 0 评论 -
pwm最后的解释
之前学东西总是模模糊糊,前几天看了pwm,虽然知道怎么配置,但是如果让我自己去写一个pwm的程序,我却不知如何下手。不知道如何配置他的频率和占空比。今天痛定思痛,决定彻底搞懂pwm。百度给 的答案是:pwm的频率是指每秒钟信号从高电平到低电平再回到高电平的次数,占空比是高电平持续时间和低电平持续时间之间的比例。pwm的频率越高,其对输出的响应就会越快,频率越低输出响应越慢。首先pwm要知道原创 2017-05-08 11:45:17 · 2954 阅读 · 0 评论 -
关于mpu6050的几个很好的帖子
最近在研究6050,真是很磨人啊,这个小东西还挺复杂,一个读取程序竟然需要600多行。 这几天连查资料找到了几个很好的帖子,要是以后有人看到这篇帖子,可以避免误入歧途,也可以省去很多时间。1、阿西莫夫电子论坛:神贴。。ahttp://www.amobbs.com/thread-5581033-1-1.html?_dsign=5c5b5cde2、强大的百度出来的第七实验室:https://w原创 2017-05-08 11:45:11 · 12483 阅读 · 0 评论 -
【转载】GPIO模拟i2c通信
I2C总线的通信过程(见图4-8)主要包含三个主要阶段:起始阶段、数据传输阶段和终止阶段。1. 起始阶段在I2C总线不工作的情况下,SDA(数据线)和SCL(时钟线)上的信号均为高电平。如果此时主机需要发起新的通信请求,那么需要首先通过SDA和SCL发出起始标志。当SCL为高电平时,SDA电平从高变低,这一变化表示完成了通信的起始条件。在起始条件和数据通信之间,通常会有延时要求,具体的指标原创 2017-05-08 11:45:07 · 658 阅读 · 0 评论 -
【转载】stm32之看门口介绍
今天在学习mpu6050的时候,发现程序出现了看门狗的程序,其实这个在学习51的时候就应该了解的,但是我并没有去了解。导致现在学习32,其实就是在补之前的51。首先,我想把文章最后一句放到开始写出来:总结一下,就个人观点来说,看门狗并不是特别需要的,是否需要在程序中加看门狗模块就具体的程序实现而定。好了,下面就介绍一下何为看门狗。 stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门原创 2017-05-08 11:45:01 · 369 阅读 · 0 评论 -
STM32之呼吸灯实验
首先,我想引用一下在一片博文里 看到 的一段话,写的很详细,首先来说,你要使用PWM模式你得先选择用那个定时器来输出PWM吧!除了TIM6、TIM7这两个普通的定时器无法输出PWM外,其余的定时器都可以输出PWM,每个通用定时器可以输出4路PWM,高级定时器TIM1、TIM8每个可输出7路PWM,这里为了方便起见,我们选择与实验相同的TIM3的通道2来说明。选好定时器及通道后,下一步就是要使能定原创 2017-05-08 11:44:54 · 5665 阅读 · 1 评论 -
【stm32】时钟树解析
有时候会突然忘了这个重要的时钟树,这里转载一个比较好的,以防忘记。 STM32时钟系统 在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外原创 2017-05-08 11:44:50 · 1350 阅读 · 0 评论 -
stm32之USART学习
首先,我是看着这位博主的文章受到的启发,进而加深了自己对USART的理解。下面是自己改装并实验过的程序。原文:http://www.cnblogs.com/greatwgb/archive/2011/07/28/2119350.html 1. 串口的基本概念在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据原创 2017-05-08 11:44:41 · 464 阅读 · 0 评论 -
【转载】 stm32之PWM
发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢。原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进原创 2017-05-08 11:44:35 · 1144 阅读 · 0 评论 -
【转载】stm32定时器-----珍藏版
今天看到一个讲解定时器特别细致入微的文章,真是难得。。。原文地址:http://www.cnblogs.com/zjvskn/p/5751591.html 一、STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB原创 2017-05-08 11:44:31 · 839 阅读 · 0 评论 -
stm32的定时器学习
看了几篇博客之后,对这个定时器也有了一些认识,其实和51差不多,就是配置定时器的时候多了几个步骤而已。其中很好的一片是:http://blog.sina.com.cn/s/blog_49cb42490100s6ud.html STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的Sy原创 2017-05-08 11:44:24 · 468 阅读 · 0 评论 -
【转载】32复用时钟AFIO开启情况
原文:http://blog.youkuaiyun.com/u012411027/article/details/44217313百度了很多结果,打开看几乎全是下面这篇文章,真是天下文章一大抄啊。我也抄一下吧。需要用到外设的重映射功能时才需要使能AFIO的时钟。首先为什么要开启时钟?答:因为要对寄存器进行读写!而在STM32中对寄存器的读写都是要打开寄存器对应的时钟才可以的【就像人一样,有了跳动的脉搏原创 2017-05-08 11:44:19 · 532 阅读 · 0 评论 -
stm32中断学习总结
经过了两天,终于差不多能看懂32的中断了,由于是用的库函数操作的,所以有些内部知识并没有求甚解,只是理解知道是这样的。但对于要做简单开发的我来说这些已经够了。我学习喜欢从一个例程来看,下面的程序是我粘贴但是改编的,大部分都做了注释。主要是感谢这位博主的文章:http://www.cnblogs.com/chineseboy/archive/2013/03/14/2956782.html其实主原创 2017-05-08 11:44:14 · 777 阅读 · 1 评论 -
ADC芯片——CS1237的使用
最近看到山西省电子设计大赛的一个题目——自制悬臂梁式简易电子称。具体题目要求如下:这个题目好像是前年TI杯的一个题目。网上资料也比较多。觉得这个题目应该很适合练手,于是就搞了一下。查了一番,觉得这个题目中的难点就是那个悬臂梁的制作与应变片的选择。这个应该属于机械、力学专业的人强项,对于我这个学控制的,还是有点挑战性的。那就先不搞传感器。我先自己买了一个商用的称重传感器(500g精度),以此作为标准...原创 2018-06-01 22:43:12 · 43037 阅读 · 19 评论