
stm32f103rb
qq_34190043
这个作者很懒,什么都没留下…
展开
-
5、stm32f103固件库学习之gpio
原创 2019-08-08 11:01:55 · 224 阅读 · 0 评论 -
4、库函数的编写
1.简单该函数实现某引脚的gpio输出为低电平。BRR寄存器的低16位正好对应各个引脚号的电平设置。所以定义好各个引脚的值,直接赋值给寄存器即可。2.复杂有些功能不仅仅是两种(0,1),有些功能可以是四种(00,01,10,11)。而且对一个引脚的设置包括几类功能,而且还是耦合的。这种情况下的库函数编写就复杂多了。比如gpio引脚的初始化设置。gpio_pin是引脚号,gpio_spee...原创 2019-08-08 14:47:58 · 1079 阅读 · 1 评论 -
3、stm32103rb 时钟学习
sysclk可以通过三个渠道获得。其一,HSI。其二,PLLCLK。其三,HSE。HSI是8M内部时钟。其可直接用作系统时钟,或者用作PLL 输入。HSE一个是外部的时钟源。PLLSRC为1,PLLXTPRE为0。static void SetSysClockTo72(void){ __IO uint32_t StartUpCounter = 0, HSEStatus = 0...原创 2019-08-06 23:20:22 · 367 阅读 · 0 评论 -
6、外部中断学习
在stm32中中断有很多个,经常被使用在各种外设的正常工作中。要想进入一个中断,必须要满足一定的条件。不同的中断有不同的要求。最简单的是按键边沿触发。首先应该搞懂这个中断!!首先要给某个引脚设置;1、把这个触发外部中断引脚的gpio和 AFIO 的时钟开启和中断优先级进行设置;2、开启时钟后,对这两个时钟控制下的寄存器进行控制。分别是gpio和exti.为什么要开启AFIO时钟...原创 2019-08-27 19:11:53 · 269 阅读 · 0 评论 -
1、51单片机复习
这里可以发现0x08是寄存器组1的r0,没在寄存器中显示。在地址框中可以发现0x08.下面这种方法改变psw的值就可以改变寄存器的值,而且可以显示在register中。psw的奇偶位为0,然而b中的1为奇数。经过检验,给a寄存器赋值0x08时,psw的最低位变成1.为什么mov a,#0x08是一个周期?和对通用寄存器的时间一样。堆栈区的学习:最后之前存储的sp值,被...原创 2019-08-24 17:18:55 · 523 阅读 · 0 评论 -
2、寄存器的一些基本概念
在51中就学过寄存器,其中还分为通用寄存器,和专用寄存器。专用寄存器,顾名思义,就是使用该寄存器进行某些特殊的功能操作。通用寄存器,一般用来进行数值计算,比如延时程序中可以用通用寄存器来进行传值,只用一个机器周期。不管是通用还是专用寄存器,和控制其他内存单元并无二样。**是什么:**我理解一些专用寄存器,可能就是把内存单元的值又连接到对应的一些外部驱动电路上(P0),所以这些内存单元除了存...原创 2019-08-25 21:53:47 · 530 阅读 · 0 评论 -
JINK电路的复习
功能:实现USB转SW功能实现USB转串口功能特点:通过usb的1引脚把5v电压引进来,给板子供电,不许外置电源该芯片价格便宜低于8元,且该芯片不需要晶振,制作成本低。具体就是把电脑连接的usb数据线连接到串口上,通过电脑把数据传送到该芯片,通过swclk swdio,地输出输出sw格式数据到103rb芯片对应的引脚中。可以发现103rb不支持usb数据的接入。...原创 2019-08-01 14:53:49 · 280 阅读 · 0 评论 -
编程之函数调用
本文将通过自己写的寄存器函数,来介绍函数定义,声明,调用相关知识。1、原来gpio.h文件中有如图中圈起来部分声明。后来被我注释掉了。gpio.h文件被引用在main.c中。2、当调用那三个函数时,会出现3个警告。具体就是,这三个函数没有显式声明!3、分析:C语言中对单个.c文件进行编译,连接,生成.o目标文件。在对main.c文件进行编译时,先把头文件的内容加进来。一般运行函...原创 2019-08-30 14:57:46 · 930 阅读 · 0 评论 -
函数调用之二
问题一:为什么编程中有.c和.h之分?.h为头文件,.c为源文件,其实两者都是代码,为什么要做这样的区分呢?主要有几点好处:一是头文件用于共享,只用一句#include就能包含,当然.c也可以包含;二是如果你要写库的话,可是你又不想暴露你的源代码,你可以把.c编译成.obj或是.lib发给别人用,然后把.h作为使用说明书。所以一般情况下,.h里面全部都是声明,.c里面全部都是实现,有了.h就可...原创 2019-08-30 15:38:00 · 127 阅读 · 0 评论 -
stm32为什么要对时钟进行分频?
https://blog.youkuaiyun.com/weixin_43217963/article/details/97792677总所周知,代码在内存中的存储形式就是2进制。cpu的任务就是读取指令,运行指令。具体操作大概是:...原创 2019-08-29 21:05:06 · 3224 阅读 · 0 评论 -
数电之SR锁存器与D触发器(转载)
来聊聊锁存器跟触发器吧,下面是这次博文要介绍的主要内容:·双稳态器件·锁存器常见结构·锁存器的应用·触发器·触发器的建立时间和保持时间1、双稳态器件双稳态器件是指稳定状态有两种,一种是0,一种是1的器件;双稳态器件是存储器件的基本模块,双稳器件的的一种电路结构是:交叉耦合反相器 结构,如下图所示: 连个反相器连在一起,这就构成了一个双稳态器件,为什么是双稳态呢?我们现在就来分析...转载 2019-08-29 14:25:34 · 10656 阅读 · 1 评论 -
为什么说嵌入式开发比单片机要难很多?一位高手谈单片机和嵌入式开发设计经验
单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟...原创 2019-07-01 20:17:38 · 377 阅读 · 1 评论 -
上拉和下拉
管脚用来做外部中断触发,如果是下降沿触发,就必须设为内部上拉输入或者设为浮空输入外部接上拉电阻;如果上升沿触发,就必须设为内部下拉输入或者设为浮空输入外部接下拉电阻。上拉电阻与下拉电阻可在管脚输入电压的情况下使用。集成电路的管脚设定为输入状态时,如果管脚悬空(图1),易受静电等外界干扰,可能会引起内部电路的不正常工作。因此在管脚为输入状态时,一般将管脚通过一电阻上拉至高电平或下拉至低电平作为...原创 2019-08-10 21:43:17 · 1418 阅读 · 0 评论 -
函数调用之三
嵌入式编程中,用到了很多的库函数。这些库函数可以免除我们去研究底层硬件知识的烦恼。如何使用这些库函数呢?1、库函数的形式一般包括一个.c和.h文件。比如gpio.c,和gpio.h文件。如何查看这些文件语法是不是有问题呢?2、这个时候如果你想调用这里面的一些函数,只需要把gpio.h头文件引用过来。引用头文件,就相当于对这个函数进行声明了。下面就可以直接调用函数了。3、文件中分别...原创 2019-08-30 16:17:31 · 148 阅读 · 0 评论