STM32学习
典型
这个作者很懒,什么都没留下…
展开
-
STM32笔记1:寄存器的来龙去脉
STM32笔记系列1:侵删:本系列笔记多数取自书籍《零死角玩转STM32》以及配套STM32教程视频,个人觉得讲的很好,在此表示非常感谢。写这个系列的笔记主要是因为我真的是鱼的记忆力啊,隔不了多久就会忘记,所以才决定写博客,重点的会记下来,以便日后翻阅。如有侵权一定删除。从芯片出发:...翻译 2018-07-18 17:39:20 · 469 阅读 · 0 评论 -
STM32学习笔记11.2:RCC
STM32单片机刚刚上电的时候,默认使用内部高速时钟HSI,而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号。 STM32上电之后执行启动文件,进行一系列的默认设置,详情可以在startup启动文件中查看。在启动文件中可以看到,在单片机进入main函数之前,会先执行SystemInit函数,该函数设置HSI为系统...转载 2018-08-21 10:26:40 · 438 阅读 · 0 评论 -
STM32学习笔记12:引脚复用功能
https://blog.csdn.net/h_kingone/article/details/53161198https://blog.csdn.net/lincheng15/article/details/51789093http://www.docin.com/p-689371836.html?docfrom=rrela转载 2018-08-21 15:24:34 · 6971 阅读 · 0 评论 -
STM32学习13:NVIC(nested vector interrupt controller)
中断类型:系统异常(内核中的中断),外部中断(内核外的中断),手册中表46中深灰色的是系统异常,白色部分是外部中断,地址是在flash中的地址。在图二中可以看到flash是从0x800 0000开始的,然而向量表格却是从0x0000 0000开始的,这样一来岂不是自相矛盾么?解答:STM32对flash进行了存储器重映射,将实际为0x800 0000开始的地址称之为0x0000 0...转载 2018-08-21 20:53:22 · 2515 阅读 · 1 评论 -
STM32f429时钟
1到4位系统时钟:无源晶振电路连接(有源晶振只需要连接在OSC_IN上即可):一般情况下,我们会采用4-26MHZ的晶振(频率太高的晶振不稳定)作为外部晶振,然后经过锁相环分频倍频之后得到高频率的时钟频率。...原创 2019-03-30 16:32:16 · 1478 阅读 · 0 评论 -
下载单片机程序的方法以及下载电路
参考文档:https://www.cnblogs.com/JeffreyCheung/p/5879765.htmlhttps://blog.51cto.com/stm32/1872550http://www.eeworld.com.cn/mcu/article_2017110935757.html编程器:就是将编写好的程序进行编译,检查其中的语法错误,知道程序语法没有问题才生...转载 2019-03-27 14:53:36 · 8336 阅读 · 0 评论 -
UART、RS232、RS485、Modbus通讯协议
UART(通用异步收发器):作用:将数据通过串行发送出去,即将一个byte的数据一bit的发送出去。RS232与RS485:规定了电气特性。电气特性即电平特性。RS232的电平特性:逻辑“1”为-3—-15V,逻辑“0”:+3—+15V。RS485的电平特性:逻辑“1”以两线间的电压差+2V~+6V表示,逻辑“0”以两线间的电压差-6V~-2V表示。MODBUS通讯协议:规定数据帧...原创 2019-05-23 09:23:34 · 6585 阅读 · 0 评论 -
基于STM32F103单片机的RS485通信实验之硬件
https://blog.csdn.net/lin_duo/article/details/78490718485通信非自动收发电路:当单片机要发送数据的时候,控制U3_TEN 为高电平,数据通过TXD发送出去。当单片机要接收数据的时候,控制U3_TEN为低电平,数据通过RXD接收回来。485通信自动收发电路:自动收发电路,就是不用单片机引脚U3_TEN,当数...转载 2019-05-30 14:40:52 · 14257 阅读 · 3 评论 -
STM32F103之USART接收数据(基于RS485与RS232通信)
(RXNE中断和IDLE中断的区别?当接收到1个字节,就会产生RXNE中断,当接收到一帧数据,就会产生IDLE中断。比如给单片机一次性发送了8个字节,就会产生8次RXNE中断,1次IDLE中断。于是我决定在产生RXNE中断时将接收到的一个字节的数据用数组保存起来。在产生IDLE中断的时候,改变ReceivedFlag(自己定义的一个检测帧数据接收完成状态的标志)的状态。main.c:#...原创 2019-06-06 10:27:39 · 11847 阅读 · 1 评论 -
基于STM32F103的Modbus通讯(32做从机)
最近做了个实验,用STM32做从机接收主机发送过来的数据包(也是基于mobus协议),而后从机将一些数据发送给主机。首先呢还是介绍下modbus协议。其实modbus协议你不需要了解太多。既然是要使用,那么你只需要明白一点,modbus协议就是在你要发送的数据的基础上,在数据前面加上一个帧头,数据后面加一个帧尾。嗯,是不是还是有点迷?举个例子吧。所以主机会发过来一帧数据:01 03 0...原创 2019-06-14 10:50:51 · 30647 阅读 · 11 评论 -
以STMF103为例总结时钟树
/*****************************************关于时钟:system_stm32f10x.c中有如下说明*******************************************///STM32的4类时钟://外部时钟HSE:高速外部时钟信号,精度高。来源:(1)HSE外部晶体/陶瓷谐振器(晶振) ;(2)HSE用户外部时钟//外部时钟L...原创 2019-06-24 09:14:36 · 343 阅读 · 0 评论 -
KEIL仿真调试问题
Q1:如何使用keil调试程序A1:第一个表示跳转到下一个程序状态,第二个表示跳转到下一行(在主程序中的时候也是直接跳转到主程序的下一行,第三个表示)watch窗口可以查看变量的数值。Q2、使用MDK进行软件设计时没有使用ST官方的模板而是手动建立的工程,使用ST官方提供的3.5版本固件库。编译完全通过,在使用软件仿真时出现问题,表现为程序无法跳转到main入口,直接在S...转载 2019-07-08 16:36:05 · 2938 阅读 · 0 评论 -
关于STM32的服用功能与重映射
4.4.1 端口复用功能 STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。 这部分知识在《STM32 中文参考手册 V10》的P109,P116~P121 有详细的讲解哪些 GPIO 管脚是 可以复用为哪些内置外设的。这里我们就不一...转载 2019-07-26 11:23:37 · 611 阅读 · 1 评论 -
复习一下STM32的时钟树
首先,上图,大名鼎鼎的时钟树图,该图位于STM32参考手册RCC章节7.2时钟(第80页)接下来,分析这棵树/*****************************************关于时钟:system_stm32f10x.c中有如下说明*******************************************///STM32的4类时钟://外部时钟H...原创 2019-08-01 10:57:18 · 370 阅读 · 2 评论 -
STM32学习笔记15:SysTick(系统定时器)
eg:系统定时时间 = SysTick_Config(SystemCoreClock / 100000)中的参数(SystemCoreClock / 100000)*(1/SystemCoreClock ) 延时时间 = Delay_us(100000) 中参数100 000 * 系统定时时间注意:不过 1us 的中断没啥意义,整个程序的重心都花在进出中断上了,根本没有时间处理其...转载 2018-08-23 11:29:41 · 2045 阅读 · 0 评论 -
STM32学习14:EXTI(外部中断事件控制器)
EXTI管理了控制器的23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。编程思路:1、配置NVIC。初始化NVIC(实现过程:先初始化NVIC结构体,再写NVICInit()函数)。2、配置按键中断。在这个函数中,...转载 2018-08-22 19:31:50 · 4067 阅读 · 1 评论 -
STM32笔记2:建库操作之点亮LED
秉火系列视频之F429开发板————挑战者侵删/**新建工程模板 建库之点亮LED灯**/#include "stm32f4xx.h"//总线#define PERIPH_BASE ((unsigned int)0x40000000)#define AHB1PERIPH_BASE (PERIPH_BASE+0x00020000) #define GPIO...翻译 2018-07-18 16:56:43 · 1096 阅读 · 3 评论 -
STM32笔记3:结构体指针访问寄存器
//peripheral:外设#include"stm32f4xx.h"//peripheral#define PERIPHERAL ((unsigned int)(0x40000000))#define AHB1_BASE ((unsigned int)(PERIPHERAL + 0x0002 0000))#define GPIOA_BASE ((unsigned int)(AHB...翻译 2018-07-18 20:36:22 · 3016 阅读 · 4 评论 -
STM32 笔记8:GPIO 配置之ODR, BSRR, BRR 详解
http://www.cnblogs.com/shangdawei/p/4723941.htmlstm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1 gpio 管脚为高电平,写 0 为低电平BSRR 只写寄存器:[color=Red]既能控制管脚为高...转载 2018-07-30 09:35:51 · 1331 阅读 · 0 评论 -
GPIO的上下拉的选择
http://www.elecfans.com/pld/jiekou_zongxian_qudong/577391.html文是搬过来的,侵权就删了,原文链接在上面。感谢提供的详细介绍。讲的很通俗易懂。GPIO是一颗芯片(MCU)必须具备的最基本外设功能。GPIO通常有三种状态:高电平、低电平和高阻态。高阻态换句话说就是断开状态或浮空态。因此上拉和下拉其中一个强大的理由就是为了防止输入...转载 2018-07-29 17:16:19 · 1783 阅读 · 0 评论 -
IO口的输入输出与上下拉电阻
上拉输入:有上拉电阻 按键未按下时端口接高电平,即高电平 1 状态---3.3v 按键按下时端口接低电平,即低电平 0 状态-------0 下拉输入:有下拉电阻 按键未按下时端口接低电平...转载 2018-07-29 14:24:01 · 16659 阅读 · 0 评论 -
STM32笔记7
视频参考:101.建立工程模板:startup:此处放启动文件。CMSIS:此处放system.c文件STM32F3XX_StdPeriph_Driver:固件库中的外设驱动库全部放进来。因为C文件中包含头文件,编译的时候会自动包含进来,所以不用添加.h文件。User:添加固件库中user中的main.c和f4xx_it.c。注意.h文件不用添加,理由同上。Doc:程序说明文件2...原创 2018-07-25 21:08:14 · 183 阅读 · 0 评论 -
模拟写库的技巧
//引入文件概念,将不同功能的代码封装起来,用头文件包含//main.c//stm32f4xx.h:存放外设,寄存器映射的代码,寄存器的结构体定义//stm32f4xx_gio.c:跟外设相关的固件库函数的具体内容:eg:GPIO_SetBits()函数的写法以及 GPIO_ReSetBits()等函数//stm32f4xx_gio.h:与外设相关的宏定义写在此处//第三行第四行的文件放...原创 2018-07-24 19:29:02 · 145 阅读 · 0 评论 -
STM32笔记5:模拟写库的结构
一些写在前面的笔记: 引入文件概念,将不同功能的代码封装起来,用头文件包含 stm32f4xx.h:存放外设,寄存器映射的代码,寄存器的结构体定义 stm32f4xx_gio.c:跟外设相关的固件库函数的具体内容:eg:GPIO_SetBits()函数的写法以及 GPIO_ReSetBits()等函数 stm32f4xx_gio.h:与外设GPIO相关的宏定义写在此处,即GPIO.c中用...翻译 2018-07-19 11:25:20 · 605 阅读 · 0 评论 -
STM32笔记4:基本库函数写法(结构体指针的应用)
//构建库函数雏形//peripheral:外设#include"stm32f4xx.h"//peripheral#define PERIPHERAL ((unsigned int)(0x40000000))#define AHB1_BASE ((unsigned int)(PERIPHERAL + 0x0002 0000))#define GPIOA_BASE ((unsigne...翻译 2018-07-19 09:29:00 · 4500 阅读 · 0 评论