自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 stm32miniOLED显示实验

y 的范围为:0~63。这句是要得到在字符点阵数 据里面的实际地址,因为我们的取模是从空格键开始的,例如 oled_asc2_1206[0][0],代表的是 空格符开始的点阵码。第三个命令为 0X8D,该指令也包含 2 个字节,第一个为命令字,第二个为设置值,第二 个字节的 BIT2 表示电荷泵的开关状态,该位为 1,则开启电荷泵,为 0 则关闭。第一个命令为 0X81,用于设置对比度的,这个命令包含了两个字节,第一个 0X81 为命令, 随后发送的一个字节为要设置的对比度的值。0XAF 为开启显示命令。

2023-05-30 13:41:45 314

原创 stm32mini输入捕获实验

4)使能捕获和更新中断(设置 TIM2 的 DIER 寄存器) 因为我们要捕获的是高电平信号的脉宽,所以,第一次捕获是上升沿,第二次捕获时下降 沿,必须在捕获上升沿之后,设置捕获边沿为下降沿,同时,如果脉宽比较长,那么定时器就 会溢出,对溢出必须做处理,否则结果就不准了。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x 为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。

2023-05-21 21:12:05 188 1

原创 stm32miniPWM输出实验

我们用到的是模式设置位 OCxM,有三位,而我们使用的是 PWM 模式,这 3 位必须设置为 110/111。之后是捕获/比较使能寄存器(TIMx_CCER), CC1E 位位是输入/捕获 1 输出使能位,要想 PWM 从 IO 口输出,这个位必须设置为 1,所以我们需要设置该位为 1。在库函数中,PWM 通道设 置是通过函数 TIM_OC1Init()~TIM_OC4Init()来设置的,不同的通道的设置函数不一样,这里我 们使用的是通道 1,所以使用的函数是 TIM_OC1Init()。

2023-05-14 18:07:47 223

原创 stm32mini通用定时器中断实验

开始先进行延时函数,串口和led的初始化,记得将NVIC中断分组,否则定时器初始化函数中的中断优先级无法发挥作用。这里说一下,通用定时器的时钟默认为APB1线的2倍,因为AHB时钟默认为72M,而APB1时钟默认为36M,故分频系数为AHB/APB1=2,所以本实验其实用不到定时器初始化的第四个参数。我们在定义中将自动装载值给了arr,将预分频值给了psc,这也是我们定时器初始化函数唯一需要输入的两个参数。第三个函数是是否使能。最后的中断服务函数,每次判断中断发生后,清除中断更新标准位,并反转led灯。

2023-05-07 19:56:13 189

原创 stm32mini窗口看门狗实验

因此,我们一般用该位来设置中断,当窗口看门狗 的计数器值减到 0X40 的时候,如果该位设置,并开启了中断,则会产生中断,我们可以在中 断里面向 WWDG_CR 重新写入计数器的值,来达到喂狗的目的。T[6:0] 就是窗口看门狗的计数器,而 W[6:0]则是窗口看门狗的上窗口,由我们自己设定,下窗口值是固定的(0X40)。WDGA 位则是看门狗的激活位,该位由软件置 1,以启动看门狗,并且一定要注意的是该 位一旦设置,就只能在硬件复位后才能清零了。首先是控制寄存器(WWDG_CR),也是计数寄存器。

2023-04-30 19:53:13 134

原创 stm32mini独立看门狗实验

比如我们设定 prer 值为 4,rlr 值为 625,那么就可以得到 Tout=64×625/40=1000ms,这样, 看门狗的溢出时间就是 1s,只要你在一秒钟之内,有一次写入 0XAAAA 到 IWDG_KR,就不会导致看门狗复位(当然写入多次也是可以的)。在介绍后面两个寄存器前,先说说状态寄存器(IWDG_SR),为32位寄存器,但只用到0位(PVU)和1位(RVU),分别控制预分频值和重装载值的更新,对应位置1证明该值更新正在进行中,只有该位被硬件清零时才可更新该值。

2023-04-23 13:32:44 207

原创 stm32mini外部中断实验

每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。其中包含4个函数,外部中断初始化函数EXTIX_Init,以及外部中断0,5-9,10-15的中断服务函数。第二个(Mode)是中断模式的选择,我们可以选择中断 EXTI_Mode_Interrupt 和事 件 EXTI_Mode_Event。3)分别使GPIOC与中断5,GPIOA与中断15,GPIOA与中断0达成映射关系,并设置结构体中的4个参数。需要注意的是不同中断线用到的中断服务函数也不同,中断线0-4分别有不同的服务函数。

2023-04-16 18:22:47 99

原创 stm32mini串口实验

这里需要注意一点,因为我们使用到了串口的中断接收,必须在 usart.h 里面设置 EN_USART1_RX 为 1(默认设置就是 1 的)。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将 该位清零,也可以向该位写 0,直接清除。串口作为 MCU 的重要外部接口,同时也是软件开发重要的调试手段,我们免不了与串口多打交道。即为波特率,字长,停止位,奇偶校验位, 硬件数据流控制,模式。2,串口复位,一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。

2023-04-09 11:24:23 273 2

原创 stm32mini串口笔记

例如组设置为 3,那么此时 所有的 60 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是 响应优先级。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。CM3 内核由256个中断,由8个32位寄存器控制,但STM32F103只用了其中的60个,则我们只需用到ISER[0],ISER[1].我们可以设置对应的ISER位为1,给对应的中断使能.一个 外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚 映射到其它的端口。

2023-04-03 00:28:51 423 1

原创 stm32mini按键实验(库函数版)

本函数中用static定义了key_up,使其成为静态全局变量,使得上一次的key_up被记忆,从而完成对不支持连按操作的实现。这个函数,用于禁止 JTAG, 开启 SWD,因为 PA15 占用了 JTAG 的一个 IO,所以要禁止 JTAG,从而让。之后的KEY0_PRES / KEY1_PRES / KEYUP_PRES三个宏定义则对应KEY0、KEY1 和 WK_UP 按键按下时 KEY_Scan 的返回值。本文是对stm32mini按键实验的一个小小总结,小白发文,如有疏漏,还请大神赐教。

2023-03-25 23:27:57 795 1

原创 stm32mini跑马灯实验(库函数版)

其中,CRL和CRH两个32位的寄存器负责配置模式(mode)及输出速率(speed),也是本次实验的主力寄存器。CRL控制每组IO口的低8位的模式,每个IO口占CRL的4个位,高两位为CNF,低两位为MODE。ODR 是一个端口输出数据寄存器,为可读写寄存器,我们既可以通过读该寄存器的值判断IO口的输出状态,也可以通过向该寄存器写入数据来控制IO口的输出电平。其中第一个变量是选定IO口组,第二个变量则是初始化参赛结构体指针,其定义包括了选定该端口组的第几个端口,该端口的模式和速率。

2023-03-25 18:57:00 473 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除