STM32F1xx寄存器版库】的更多相关文章

文件下载链接 https://files.cnblogs.com/files/listenscience/STM32F1xx%28MDK5%292018.10.20.rar…
第6章     新建工程—寄存器版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章内容所涉及的软件只供教学使用,不得用于商业用途.个人或公司因商业用途导致的法律责任,后果自负. 版本说明:MDK5.15 版本号可从MDK软件的"Help-->About uVision"选项中查询到. 6.1 新建工程 6.1.1 新建本地工程文件夹 为了工程目录更加清晰,…
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序:注入通道组相当于中断.程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换. 有16个多路通道.可以把转换组织成两组:规则组和注入组.在任意多个通道上以任意顺序进行的一系列转换构成成组转换.例如,可…
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启TIM2时钟,配置PA0输入 APB1外设复位寄存器 (RCC_APB1RSTR) APB2外设时钟使能寄存器(RCC_APB2ENR) 置1开启.清0关闭. Eg:RCC->APB1ENR|=1<<0; //使能TIM2时钟  RCC->APB2ENR|=1<<2;  …
STM32除TIM6和TIM7外都可以产生PWM输出.高级定时器TIM1和TIM8可以同时产生7路PWM,通用定时器可以产生4路PWM输出. 1.TIM1 CH1输出PWM配置步骤 ①开启TIM1时钟,配置PA8为复用输出 APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设复位寄存器 (RCC_APB1RSTR) 置1开启.清0关闭. Eg:RCC->APB2ENR|=1<<11; //使能TIM1时钟 配置I/O口: 参见stm32寄存器版学习笔记01 GPIO口的配置…
stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干扰大时,上拉/下拉输入模式也建议使用外部上拉/下拉电阻. 1.设置外部中断 的步骤 ①初始化I/O口为输入 参见 stm32寄存器版学习笔记01 GPIO口的配置. ②开启I/O口复用时钟, 设置I/O口与中断线的映射关系 这一步在函数void Ex_NVIC_Config(u8 GPIOx,u8…
更多原理请参考跑马灯 库函数版 个人笔记 步骤 使能IO口时钟.配置相关寄存器寄存器RCC->AHB1ENR 初始化IO口模式.配置四个配置寄存器 GPIOx_MODER/ GPIOx_OTYPER/ GPIOx_OSPEEDR/ GPIOx_PUPDR 操作IO口,输出高低电平.配置寄存器GPIOX_ODR或者BSRRL/BSRRH. 代码 led.c #include "led.h" #include "stm32f4xx.h" void LED_Init…
SPI(Serial Peripheral Interface),串行外围设备接口.SPI是一种高速的.全双工.同步的通信总线. SPI接口一般使用4条线通信: MISO 主设备数据输入,从设备数据输出 MOSI 主设备数据输出,从设备数据输入 SCLK 时钟信号,有主设备产生 CS 从设备片选信号,有主设备控制 SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置.SPI_CR寄存器的CPOL(时钟极性)位,控制在没有数据传输时时钟的空闲状态电平,此位对…
DMA(Direct Memory Access),直接存储器访问.DMA传输方式无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU效率大大提高.stm32f103有2个DMA控制器,DMA1有7个通道,DMA2有5个通道,专门用来管理来自外设对存储器的访问请求,还有一个仲裁器来协调各个DMA请求的优先权. 1.DMA各通道请求 从外设产生的DMA请求通过逻辑"或"输入到DMA控制器,这就意味着同时只能有一个请求有效. 例如,串口1发送的DMA,就…
STM32共有8个定时计数器,其中TIME1和TIME8是高级定时器,TIME2~TIME5是通用定时器,TIME6和TIME7是基本定时器.以TIME3为例总结定时计数器的基本用法. 1.TIM3的配置步骤 ①TIM3时钟使能 APB1外设复位寄存器 (RCC_APB1RSTR) 置1开启.清0关闭. 第一位对TIM3的时钟使能 Eg:RCC->APB1ENR|=1<<1; //使能TIM3时钟 APB2外设时钟使能寄存器(RCC_APB2ENR) ②设置TIM3_ARR和TIM3_P…
stm32F103RCT6提供5路串口.串口的使用,只要开启串口时钟,设置相应的I/O口的模式,然后配置下波特率.数据位长度.奇偶校验等信息,即可使用. 1.串口的配置步骤 ①串口时钟使能 APB2外设时钟使能寄存器(RCC_APB2ENR) 置1开启.清0关闭. 第14位对串口1的时钟使能 Eg:RCC->APB2ENR| = 1<<14; //使能串口1时钟 除串口1的时钟使能在RCC_APB2ENR寄存器,其余的时钟使能位在寄存器RCC_APB1ENR寄存器,而APB2(72M)的…
STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CRL和CRH(模式.速度):数据寄存器IDR和ODR:置位/复位寄存器BSRR:复位寄存器BRR:锁存寄存器LCKR. I/O口模式: GPIO的8种模式 通用输出 推挽输出(Push-Pull) 可以输出高.低电平,连接数字器件   开漏输出(Open-Drain) 开漏引脚不连接外部的上拉电阻时,…
STM32寄存器版本——内部时钟设置 同时要记得把延时初始化函数设置好 //系统时钟初始化函数 //pll:选择的倍频数,从2开始,最大值为16 //pll:选择的倍频数,这里使用内部时钟,PLL为4就是4分频 void Stm32_Clock_Init(u8 PLL) { unsigned ; MYRCC_DeInit(); //复位并配置向量表 // RCC->CR|=0x00010000; //外部高速时钟使能HSEON RCC->CR|=0x00000001; //内部高速时钟使能HS…
之前几个项目开发都是用的华大HC32F003_DDL_Rev1.0.2的库函数,今年刚开始入手华大,刚开始不是很了解这个芯片,看到库能用就上手了.这个版本的库编译效率很低,16K的芯片一下就写爆了.后面华大官方不在对此版本的库进行更新,之前使用的时候也发现了很多错误和漏洞.这次新项目使用hc32f005_ddl_Rev1.9.0 Lite的库开发,今天第一天使用,就发现了一个不全. 单片机P00复位口这边做了按键检测,那么要将RST引脚配置位IO功能,看了手册SYSCTRL1的功能位,bit7…
I²C(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外设,是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据. IIC总线在传送数据过程中共有3种类型信号,分别是开始信号.结束信号和应答信号.   SCL SDA 开始信号 高电平 由高电平向低电平跳变,开始传送数据 结束信号 高电平 由低电平向高电平跳变,结束传送数据 应答信号 接收数据的IC在接收到8bit数据后向发送数据的IC发出特定的低电平脉冲,表示已经收到数据:CPU向受控单…
Qt5Cored.dll和Qt5Core.dll文件分别用于Qt软件的Debug版和Release版. 通常会有两个Qt5Core.dll文件,分别位于Qti安装目录下的“Qt5.1.0\5.1.0\mingw48_32\bin”和“\Qt5.1.0\Tools\QtCreator\bin”两个目录中.其中“Qt5.1.0\5.1.0\mingw48_32\bin”目录下才是Qt项目运行时所需的库. 但是,有时候在运行Release版项目时,却提示没哟找到Qt5Cored.dll.这是由于在编译…
标题: Arduino库和STM32的寄存器.标准库.HAL库.LL库开发比较之GPIO 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#Arduino,#STM32,#库,#开发] 日期: 2021-07-01 背景说明 STM32开发方式 寄存器(STM32Snippets):直接操作寄存器 SPL库(Standard Peripheral Libraries):标准外设库,将寄存器操作封装成函数 HAL库(Hardware Abstraction Layer):硬件抽象…
1.STM32F103ZET6简介 STM32F103ZET6的FLASH容量为512K,64K的SRAM.按照STM32芯片的容量产品划分,STM32F103ZET6属于大容量的芯片. 2.下载HAL固件库 打开STM32的官方网址:https://www.st.com/. 在官网上通过搜素STM32CubeF1找到如上图所显示的内容,这个就是STM32F1系列的固件包文件,点击“获取软件”下载. 3.安装STM32F1的Pack 到http://www.keil.com/dd2/pack/ …
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助. 1.  链接时缺失了相关目标文件(.o)     测试代码如下: 然后编译. gcc -c test.c gcc –c main.c 得到两个 .o 文件,一…
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到.在此,我以详细示例给出常见错误的各种原因以及解决办法,希望对初学者有所帮助. 1.链接时缺失了相关目标文件(.o) 编译命令: gcc -c test.c gcc -c main.c 得到两个.o文件,一个是main.o,一个是test.…
Apache Subversion(简称SVN,svn) 因为某种原因我们需要用Nginx作为Subversion的http前端,但目前没有现成的Nginx+Subversion搭配方式. 而Subversion提供Apache的http处理模块.现在我们通过nginx反向代理给Apache的方式来实现Nginx+Subversion的组合方式. 构建Apache+Subversion的环境: [root@nginx-apache-svn ~]# yum install httd subvers…
使用预编译库 NDK 支持使用预编译库(同时支持静态库和共享库).此功能有以下两个主要用例: 向第三方 NDK 开发者分发您自己的库(而不分发您的源代码). 使用您自己的库的预编译版本来提升编译速度. 本页将介绍如何使用预编译库. 声明预编译库 您必须将自己使用的每个预编译库声明为一个独立模块.为此,请执行以下步骤: 为模块提供名称.此名称不需要与预编译库本身的名称相同. 在模块的 Android.mk 文件中,将指向您提供的预编译库的路径分配到 LOCAL_SRC_FILES.指定 LOCAL…
最近在用Qt开发Android应用时需要获取https页面内容,但Qt内置的QNetworkAccessManager类只支持下面这些协议(调用其supportedSchemes成员函数获取): ("ftp", "file", "qrc", "http", "data") 而网上我找到的支持https的介绍是使用QSslConfiguration类,然后把OpenSSL的两个DLL(libeay32.dll…
标题:发个自己做的UD分解+强跟踪卡尔曼滤波做的双轴姿态测量 链接:http://www.amobbs.com/thread-5511854-1-1.html 关键词:UD分解+强跟踪卡尔曼滤波,采用陀螺+加速度传感器的数据融合,惯导+ekf ,CH Robotics,EKF UD分解的EKF  sage-husa自适应  强跟踪 标题:[捷联惯导] 有点小成就,四轴起飞指日可待 链接:http://www.amobbs.com/thread-5531433-1-1.html 关键词:平衡滤波+…
外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线.每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测. EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性. EXTI功能框图EXTI 的功能框图包含了 EXTI 最核心内容,掌握了功能框图,对 EXTI 就有一个整体的把握,在编程时就思路就非常清晰. EXTI 功能框图见图 17-1.在图 17-1 可以看到很多在信号线上打一个斜杠并标注“ 23”字…
使用IAR(或者Keil)写/移植程序时批量更换字符 作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/p/10776712.html 或者 https://blog.csdn.net/Kevin_8_Lee/article/details/89576799 欢迎转载,但也请保留上面这段声明.谢谢!(上面这个也是我写的博客,只是在另一个平台) 写在前面: 不知道大家使用STM32CubeMX的HAL库编程时,有没有遇到下面的问题 当我们移植一些标准库或者寄…
玩STM32的时间也比较久了,最早的一直玩的是STD标准库的103系列,但是ST公司也是“与时俱进”,舍弃了当年的标准库,转而推广HAL库,反正无论怎么样把,对于STM32的使用也仅仅停留在使用阶段,底层涉入不神,我一直觉得真正的大牛们,都是趴在最底层不愿意起来的那一群,唉……底层难啊.近来由于课设要求,重新捡起来F407的板子,继续ST进阶之路.长时间不玩,对于STM32陌生了好多,这次玩板子,看的更深了点,花了一下午,终于解决了一个问题:关于板子上电以后系统时钟频率的设置问题. 以前最先用1…
第14章参考手册概述     本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源.所有的内容都力求给出准确的技术以及当前最新最流行的信息,如果读者发现 书中有不恰当之处,请向我们的Que公司的有关部门反映,对读者所提的每一个问题他 们都会很重视.     以下几章的主要内容是:     · BIOS参考手册     · DOS参考手册     . 鼠标参考手册     · EM…
转载自:http://www.21ic.com/app/mcu/201811/781135.htm   SysTick时钟,俗称“嘀嗒定时器”,它能按设定的时间产生一次中断.控制工程代码中随处可见形如delay_ms()之函数.但是一直不清楚其内在机制.今天花时间研究了一下.首先还是在数据手册上看一下SysTick寄存器的配置, SysTick时钟,俗称“嘀嗒定时器”,它能按设定的时间产生一次中断.控制工程代码中随处可见形如delay_ms()之函数.但是一直不清楚其内在机制.今天花时间研究了一…
注意:相关RTC基础知识这里不提! 该库头文件引用: #include <RTClock.h>   该库所在Arduino位置: 初始化RTC相关时钟 Arduino版的库里初始化配置PWR时钟.初始化配置备份寄存器时钟.复位备份寄存器(RTC时钟需要用到备份寄存器相关东西) 官方老标准库里也是一样的: 设置寄存器RCC_APB1ENR的PWREN和BKPEN位打开电源和后备时钟. 使能写备份寄存器 在Arduino版库里,写备份寄存器使能是操作电源相关里的CR寄存器的DBP位置1 在老版标准…