STM32F103
鹜冥鸽
这个作者很懒,什么都没留下…
展开
-
I2C总线协议原理
首先I2C总线一共分为2根,一根是SCL(serial clock),还有一根是SDA(serial data),一根是用来同步时钟的,一根是发送接收数据的,因为有时钟的同步,所以很显然,I2C用的是同步通信的方式。 在SDA和SCL总线上,所有的设备都是采用的线与的连接方式,也就是说,接地输出的是0,高阻态的情况下输出的是1,所有的设备是不会直接通过输出高电平的,原因也很简...原创 2020-03-26 11:24:45 · 1029 阅读 · 0 评论 -
STM32F10x 中断程序(NVIC)
中断是所有单片机的核心,也是单片机中比较难掌握的一块内容,正好我学完中断以后,来做一个总结。中断一般的类型有两种,第一个是系统异常,是属于内核级别的中断,第二个是外部中断,这是体现在外设方面。管理中断的一个很重要的寄存器是NVIC(嵌套向量中断寄存器)。对于M3和M4内核的MCU,每个中断的优先级都是用寄存器中的8位来设置的。那就可以产生2^8 = 256个中断,但实际上是用不到这么多的,所以...原创 2020-03-23 21:57:20 · 1213 阅读 · 0 评论 -
STM32F10X 位带操作
在STM32单片机的学习中,有一个最大的特点就是你所编写的STM32的程序操作,基本上都是总线的操作,比如GPIOB->ODR = 0x0001(或者直接等于1),这样的操作必须要考虑整个寄存器的数据,但其实如果学过51单片机的人都知道,我们除了对于总线操作外,我们还是经常会对单独的位进行操作,比如#include <reg52.h>sbit led1 = P0^0;led...原创 2020-03-17 13:38:14 · 441 阅读 · 0 评论 -
STM32F10X 寄存器映射
之前我写过一些关于微处理器的博客,都是关于使用ST公司给我们的固件库来编写的,这样的编写无疑是很高效的,但是为什么这些固件库就可以实现我们想要的功能呢,这个就是需要涉及到单片机的底层地址,那下面我们就深入到单片机的最底层来一探究竟吧。首先,我们想找各个寄存器和外设的地址,我们就要找到芯片手册中,有一项是存储器的映射,这张图里面就是告诉了我们开发者,各个存储器的地址都是什么,比如我们可以找到APB...原创 2020-03-15 22:52:54 · 376 阅读 · 0 评论 -
STM32F103 呼吸灯的实现
呼吸灯,也就是让灯的亮度随着时间的变化而变化,而要实现这个变化,我们需要通过占空比来完成,也就是是通过PWM来实现这个操作,只要我们发送的频率足够的快,因为人眼的视觉暂留的原因,人是不能看到灯灭掉的,所以只要脉冲的宽度越宽,可以看到的灯也就越亮。下面就是通过STM32103这块板子的代码实现。先写关于点灯的c文件#include "led.h"#include "stm32f10x.h"...原创 2020-03-12 13:09:26 · 8223 阅读 · 12 评论