自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2024年8月月终总结

总的来说,因为最底层的思想,已经发生了重大改变——也就是认识到直觉上虽然有一个小我,但是本质上无小我,实际上整个思维模式、行为模式,都在发生重大而深刻的变化。特别在8月20日里,写完那篇《破人我,在一合相里没有突发事件》,对于“无我”的实相,有了更进一步的体会后,忽然之间,觉得做什么都没有动力了。更深的原因,可能还是因为随着学佛的持续深入,心里的原来的那种基于自我的执着心、追求心在持续降低,忽然之间觉得做什么都没有了原来的那种动力。和STM32的学习,这么长时间,只写了一篇,还是草稿,简直是完全放下了。

2024-09-20 16:41:51 127

原创 2024年7月月终总结

百词斩和每日英语听力,从6月21日开始使用hellotalk后,这两项就开始慢慢放下了,到2024年7月3日时,终于下定决心,将它们完全暂停了。3)Java学习和STM32的学习,本月只写了4篇STM32的学习笔记,并且做完相关的实验,我给自己定的目标,是每周至少发一篇学习会笔记。从实际使用的效果来看,确实如此,今天早上我在与国外的人说英语时,感觉自然从容了很多!做这些事的最终目的,从根本上来说,并不是为了达到什么现实目的,因为很明显,这个身体的生命的尽头是死亡,因此不可能究竟得到什么。

2024-08-06 11:40:02 176

原创 STM32学习和实践笔记(42):RS485通信实验

这个实验不会有什么问题,因为其整体就是跟之前做的RS232的程序基本是一致的,只不过因为485是半双工,所以增加了一个发送和接收的控制引脚。通过STM32F1的串口2将PC机发送过来的数据原封不动的返回给PC机串口,同时D1指示灯不断闪烁,提示系统正常运行。用这个转换器,将串口那端连接电脑的串口,RS485这端连到开发板的RS485接口,就可以进行RS485通信了。在上图中,2和3是并接成一根线的,这样,低电平就表示接收,从RO输出。串口控制通常是TTL电平,需要用收发器转换成RS485的电平。

2024-08-01 16:43:38 66

原创 STM32学习和实践笔记(41):红外遥控实验

由于红外接收头在没有脉冲的时候为高电平,当收到脉冲的时候为低电平,所以可以通过外部中断的下降沿触发中断,在中断内通过计算高电平时间来判断接收到的数据是0还是1。实际程序中,因为各接收头的差异,判断0或1时,会指定一个较宽的范围,比如,只要在1400-1700us,都认为它是高电平。红外接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑 1 应该是。以00FFA25D为例,00是地址码,FF是地址反码,A2是控制码,5D是A2的反码即控制反码。

2024-07-25 14:46:26 40

原创 STM32学习和实践笔记(40):DS18B20温度传感器实验

DS18B20温度传感器的内部存储器包括一个高速的暂存器RAM和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL和配置寄存器。60~240 us,以产生低电平应答脉冲。单总线器件仅在主机发出读时序时,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。比如我们要计算+85度,数据输出十六进制是0X0550,因为高字节的高5位为0,表明检测的温度是正温度,接着主机释放总线,外部的上拉电阻将单总线拉高,延时 15~60 us,并进入接收模式。

2024-07-15 15:32:14 881

原创 STM32学习和实践笔记(39):I2C EEPROM实验

如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续传送。然后,从机释放SDA线,以允许主机产生终止信号。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。

2024-07-10 11:06:39 152

原创 2024年6月月终总结

另外,本月21号无意中发现了一个可以直接与外国人说英语的APP,hellotalk,花了398元注册了两年的VIP会员,从此后每天都上去听说交流至少15分钟!和STM32的学习,本月写了6篇STM32的学习笔记,并且做完相关的实验,我给自己定的目标,是每周至少发一篇学习会笔记。5)每天坚持听经闻法至少15分钟,以及在《证量的世界》公众号上发文一篇。6)坚持运动,主要是经常打乒乓球健身,基本做到月初的隔一天打一次球的要求。笔记是减少了,但是工作日都至少坚持学习了15分钟。2)中医学习每天15分钟,没有中断。

2024-07-01 16:27:14 331

原创 STM32学习和实践笔记(38):RTC实时时钟实验

只要保证后备区域供电正常,RTC便不会停止工作,所以通常会在后备区域供电端加一个纽扣电池,即使主电源停止供电,后备电源也会启动供电,要更好的理解STM32F1的RTC,就需要了解它内部的结构。模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。设置RTC时间日期初值,在RTC秒中断内使用串口打印出RTC日期和时间,D1指示灯闪烁提示系统运行。从而保证RTC时钟不停的运行,只有当主电源和后备纽扣电池都没有电的时,RTC才停止工作。程序烧写到开发板,实验结果如下,实验是成功的。

2024-06-28 11:36:38 1001

原创 STM32学习和实践笔记(37):DMA实验

DMA优先级只有在多个DMA数据流同时使用时才有意义,本章实验我们只使用了一个DMA数据流,所以可以任意设置DMA优先级,这里我们就设置为中等优先级,配置参数为DMA_Priority_Medium。DMA 外设寄存器的地址对应的就是串口数据寄存器的地址, DMA 存储器的地址就是我们自定义的变量(相当于一个缓冲区,用来存储通过串口发送到电脑的数据)的地址。通过DMA_CCR寄存器的MINC位设置。通过DMA_CMAR寄存器设置,一般设置为我们自定义存储区的首地址,即我们存放DMA传输数据的内存地址。

2024-06-21 15:29:37 1006

原创 STM32学习和实践笔记(36):DAC数模转换实验

把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由 DAC 输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。同ADC一样,VDDA与VSSA是DAC模块的供电引脚,而VREF+是DAC模块的参考电压,开发板上已经将VREF+连接到VDDA,所以参考电压范围是0-3.3V。程序烧写到开发上板,最开始显示是输出电压值为0V,之后按动上键和下键,输出电压值对应发生如下变化,这说明程序运行正常,实验是成功的。DAC拥有这么多功能,是由DAC内部结构决定。

2024-06-18 16:33:50 940

原创 STM32学习和实践笔记(35):内部温度传感器实验

(因为一方面温度的精度比较差,另一方面STM32工作时CPU会发热,所以不要利用这个温度传感器来测试STM32周围的环境温度,因为太不准确了~)D1指示灯、串口1电路在前面章节都介绍过,这里就不多说,至于内部温度传感器它属于STM32F1芯片内部的资源,连接的是ADC1_IN16通道。上一步配置好后,我们就可以读取温度传感器的电压值,根据温度计算公式,可以求出对应电压值的温度,具体方法与上一章一样。我们在设置好 ADC1 之后只要读取通道 16 的AD值,就知道温度传感器返回来的电压值了。

2024-06-12 15:06:01 1091

原创 STM32学习和实践笔记(34):ADC模数转换实验

因为STM32F1的ADC是12位转换精度,而数据寄存器是16位,所以ADC在存放数据的时候就有左对齐和右对齐区分。(如果分频因子为2/4,那很明显就超过了最大值14MHZ,所以不行,而设成8,则频率为72/8=9MHZ,频率很明显又较低,采样就没有那么准确)同样如果在规则通道转换过程中,有注入通道插入,那么就要先转换完注入通道,等注入通道转换完成后再回到规则通道的转换流程。个通道在转换的时候可分为2组通道:规则通道组和注入通道组,其中规则通道组最多有16路,注入通道组最多有 4 路。

2024-06-11 15:29:54 1151

原创 2024年5月月终总结

和STM32的学习,本月写了11篇STM32的学习笔记,并且做完相关的实验,我给自己定的目标,是每周至少发一篇学习会笔记。本月的学习笔记,比之前有大幅减少,主要是因为想将一个主题全部学完,然后再集中整理和发出。实际上工作日我每天都是学习了。5)每天坚持听经闻法至少15分钟,以及在《证量的世界》公众号上发文一篇。《方剂学 邓中甲主讲 成都中医药大学 82集》看到了第52集。5主要继续看《天台教观纲宗》,目前已看到第24集。7)坚持打坐、观呼吸放松、念佛,基本每天都有做。2)中医学习每天15分钟,没有中断。

2024-06-01 16:04:05 261

原创 STM32学习和实践笔记(33):待机唤醒实验

在进入待机模式后,除了复位引脚以及被设置为防侵入或校准输出时的 TAMPER (PC13)引脚和被使能的唤醒引脚。默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下,HCLK。区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,从待机模式唤醒后,程序将按照复位(启动引脚采样、复位向量已获取等)后的方式重新执行。,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其。系统运行时D1指示灯闪烁,5秒后进入待机模式,D1指示灯熄灭,

2024-05-31 14:39:17 769

原创 STM32学习和实践笔记(32):电容触摸按键实验

3)在后续的捕获检测中,即不断重复上面的第1步和第2步,我们就可以通过与记录的值进行对比,判断是否发生触摸。很明显,如果没有发生触摸,每次捕获发生的时间是基本上相等的,如果有触摸,那么时间必然明显延长。触摸按键与传统的机械按键相比,不仅美观而且耐用、寿命长,它颠覆了传统意义上的机械按键控制,只要轻轻触摸,就可以实现按键开关的控制、量化调节甚至方向控制。根据捕获到的高电平时间长短,来判断是否有按键按下,如果有按下,则翻转D2指示灯的状态以提示检测到了一次按下。)捕获电容触摸按键输入信号的高电平脉宽,

2024-05-30 14:01:56 637

原创 STM32学习和实践笔记(31):输入捕获实验

其实输入捕获和前面定时器中断一样也是通用定时器的一个功能,因此还是要用到定时器的相关配置函数,具体步骤如下:(定时器相关库函数在stm32f。D1指示灯用来提示系统正常运行,K_UP按键是接在PA0管脚上的,所以可以通过此按键输入一个高电平,通过串口1的printf函数打印捕获到的高电平时间。上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存(TIMx_CCRx。输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,

2024-05-24 14:51:46 870

原创 STM32学习和实践笔记(30):窗口看门狗(WWDG)实验

这很容易理解,7位计数器的最大值是127, 窗口下限 0X40是64,这是固定的。通常不使用这个公式来计算溢出时间,因为当计数由最大值0X7F(或者用户指定某个超过0X40的值)递减到0X40(0011 1111)时,如果我们打开了提前唤醒中断功能,那么这时就会产生一个中断提醒我们应该喂狗了,于是重置初值,重新开始计数。当减到一个固定值 0X40 时还不喂狗的话,产生一个MCU复位,这个值叫窗口的下限,是固定的值,不能改变,这个和独立看门狗是类似的。当然,计算一下,心里了解多长时间必须喂狗也是可以的。

2024-05-22 14:57:33 712

原创 STM32学习和实践笔记(29):独立看门狗(IWDG)实验

pre是预分频器系数(0-6),rlr 是重装载寄存器的值,公式内的40是独立看门狗的时钟源,也就是LSI,即40KHZ。反之,就表示程序跑飞了或者卡死了,那么看门狗计数器递减到0后,程序就会复位重新启动,这样就解决了程序运行中出现的跑飞或者卡死的故障。由于IWDG是STM32F1内部资源,因此本实验的硬件电路非常简单,只有LED指示灯、K_UP按键连接,其对应的电路图在前面章节中都有介绍,这里就不多说。如果在计数器递减到0之前,程序重新给这个计数器装载了计数器值,那么系统就不会产生复位。

2024-05-17 14:55:27 739

原创 STM32学习和实践笔记(28):printf重定向实验

函数里,默认输出设备是显示器,如果想要用这个函数将输出结果到串口或者LCD上显示,就必须重定义标准库函数里中printf。//将此处原来的显示器改为USART1。函数调用的与输出设备相关的函数。按照十进制整型数打印,至少。按照浮点数打印,小数点后有。函数时会自动调用这个函数。比如要使用printf。,这个更改就叫重定向。按照十进制整型数打印。输出到串口,需要先将。按照浮点数打印,至少。按照浮点数打印,至少。个字符宽,小数点后有。函数输出一个整型数据。

2024-05-14 14:51:52 636

原创 STM32学习和实践笔记(27):USART串口通信实验程序

1的USART1收到PC机发来的数据后原封不动的返回给PC机显示。同时使用D1指示灯不断闪烁提示系统正常运行。通过USART1实现与PC机对话,STM32F。(1)初始化USART1,并使能串口接收中断等。本实验所要实现的功能是:STM32F。(2)编写USART1中断函数。

2024-05-10 11:36:19 333

原创 STM32学习和实践笔记(26):USART配置步骤

(USART相关库函数在stm32f10x_usart.c和stm32f10x_usart.h文件中)。对USART进行配置,具体步骤如下:(1)使能串口时钟及GPIO端口时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟(2)GPIO端口模式设置,设置串口对应的引脚为复用功能 (也就是对应的引脚

2024-05-07 16:29:17 417

原创 STM32学习和实践笔记(25):USART(通用同步、异步收发器)

USART在STM32中应用最多的是printf输出调试信息,当我们需要了解程序内的一些变量数据信息时,可以通过printf输出函数将这些信息打印到串口助手上显示,这样一来就给我们调试程序带来了极大的方便。图上1号区的引脚,TX,RX,SCLK、nRTS,nCTS等外部引脚,其余的是芯片内部的功能引脚,很少使用。2号区中,如需要向外发送数据,就向发送数据寄存器TDR中写入数据。多处理器通信和DMA功能,使用 DMA 可实现高速数据通信。二,STM32的USART的内部功能框图。UART即通用异步收发器,

2024-05-07 16:05:51 274

原创 2024年4月月终总结

做这些事的最终目的,从根本上来说,并不是为了达到什么现实目的,因为很明显,这个身体的生命的尽头是死亡,因此不可能究竟得到什么。做这些事的目的,从最终级的目的上来说,就是调心,让心常处于专注、充实、安宁、快乐的状态,仅此而已!5)每天坚持听经闻法至少15分钟,以及在《证量的世界》公众号上发文一篇。长期坚持做这些功课,形成相续的习惯,就是在训练定力。7)坚持打坐、观呼吸放松、念佛,基本每天都有做。继续听《天台教观纲宗》,目前看到第10集。2)中医学习每天15分钟,没有中断。

2024-05-03 00:00:00 339

原创 STM32学习和实践笔记(24):PWM输出实验:呼吸灯

所以可以通过TIM3的CH1输出PWM信号,实现D7指示灯呼吸灯的控。本实验所要实现的功能是:通过TIM3的CH1输出一个PWM信号,控制D7指示。示灯接在PC6管脚,而通过对TIM3_CH1复用功能完全重映射就可以映射到。本实验的硬件电路非常简单,只使用到开发板上的LED(D7),因为D7指。灯由暗变亮,再由亮变暗,类似于人的呼吸。1)初始化PC6管脚为PWM输出功能。2)PWM输出控制程序。

2024-05-02 12:13:13 515

原创 STM32学习和实践笔记(23):PWM输出的配置

第一个参数用于选择定时器,第二个参数用于选择使能还是失能输出比较预装载寄存器,可选择为TIM_OCPreload_Enable、TIM_OCPreload_Disable。比如,这里的通用定时器3的通道1,它的默认PWM输出引脚是PA6,通过使用重映像或映射,可以让它在PB4或PC6引脚上输出!在接下来的PWM实验中,就是实现在PC6上输出PWM信号,来使接在PC6的LED灯,显示呼吸灯的效果。所谓的引脚复用器映射,是指将原来默认设置在某个引脚上的功能,改到别的引脚上去实现。

2024-04-29 15:06:10 1342 1

原创 STM32学习和实践笔记(22):PWM的介绍以及在STM32中的实现原理

以上图为例来说明,上图中ARR的值为8,也就是整个PWM的周期就是8,从上图中可以看出,OCXREF就是输出的PWM信号,在一个周期内,其高电平的宽度,取决于CCR里的值。如上图所示,数字信号的脉冲宽度与模似信号的大小成正比,这就实现了模拟信号对脉冲宽度的调制——所谓调制,就是随它的变化而变化的另一种说法而已。当CNT开始计数后,在每一个ARR的值的周期,它都不断地动态与CCR值进行比较,只要它大于CCR里的值,它就输出高电平,反之就输出低电平。这样的一个周期,是包括了PWM高电平和低电平的。

2024-04-26 16:10:52 600

原创 STM32学习和实践笔记(21):定时器中断实验

自动重装计数器装入初值,然后以CK_CNT的频率从0开始计数,当计到大于初值时,就产生事件或者溢出中断。ClockDivision是指输入滤波通道后面的那个预分频器,是对输入信号进行分频的,一般设为1。反过来,根据已知的需要定时多长时间,也可以算出需要装入的初值是多少。TCLK是外设总结时钟的两倍,也就是36M*2=72MHZ。第四步:设置定时器中断优先级,使能定时器中断通道。了解结构体成员功能后,就可以进行配置,例如。包含自动重装值,分频系数,计数方式等。第三步:设置定时器中断类型,并使能。

2024-04-25 14:39:26 961

原创 STM32学习和实践笔记(20):定时器

一共有四种时钟来源:一是内部时钟,二是外部时钟,来自外部引脚,三是内部的触发输入,一共有ITR0-ITR3共四个。4)可使用外部信号(TIMx_ETR)控制定时器,且可实现多个定时器互连(可以用1个定时器控制另外一个定时器)的同步电路。通常情况下,都是选择内部时钟作为通用定时器的时钟来源。通用定时器是在基本定时器的基础上扩展而来,增加了输入捕获与输出比较等功能。图示1区是通用计数器的时钟来源区,用来给定时器提供计数的频率。其值为1-65535.的每个通用定时器都是完全独立的,没有互相共享的任何资源。

2024-04-24 12:16:16 432

原创 STM32学习和实践笔记(19):按键控制实验(用STM32的外部中断的方式实现)

花了两小时,对照着视频的讲解,终于成功做完这个实验~~

2024-04-23 12:01:48 359

原创 STM32学习和实践笔记(18):STM32的外部中断的配置

注意,中断服务函数名字要严格按上面的来。从EXTI5到10,是合在一起的两个函数,而不是像前面的0-4那样命名。比如,EXTI0,可以分配给GPIOA0,GPIOB0...GPIOG0这7个引脚的任何一个。上图中(2)的设置IO口与中断线的映射关系,就是上面说的分配EXTI给具体的引脚。但是GPIO差不多每个端口都有16个引脚,具体是怎样分配的呢?如上图,EXTI的0-15是分配给GPIO的16个引脚。

2024-04-21 00:30:00 267

原创 STM32学习和实践笔记(17):STM32外部中断(EXTI)的整体介绍

由与门4可以知道,如果将中断屏蔽寄存器设为0,那么就可以屏蔽收到的中断信号。EXTI的每根输入线都可单独进行配置:以选择类型(中断或事件)和相应的触发方式(上升沿触发、下降沿触发或边沿触发),开发板上所使用的这个芯片STM32F103,没有最后一个以太网唤醒的中断,所以是19个EXTI。或门3,有两个输入口,只要有一个有高电平,就会输出高电平。输入线1,就是芯片外部的触发信号的输入处,对EXIT来说,通常就是GPIO的某一个引脚。如果是事件,就走1,2,3,6,7,8。如果是中断,就走1,2,3,4,5。

2024-04-20 00:15:00 393

原创 STM32学习和实践笔记(16):STM32的中断一般配置步骤

注意每一个中断服务函数的中断名,都已经在下面这个启动文件中写好了。方法就是使用库函数 NVIC_PriorityGroupConfig(),来设置中断优先级分组,misc.c。可以查看这个库函数。优先级分组具体见上一篇的内容,一共有5种可能的分组方式,通常使用标号为2的那种分组方式。这个具体内容,就是当这个中断发生后,自己希望利用这个中断具体做什么。方法就是调用这个外设的中断使能库函数来使能或者说打开它。结构体,这个结构体也是在misc.c中可找到。)编写中断服务函数内的具体内容。)设置中断优先级分组,

2024-04-19 11:38:27 203

原创 STM32学习和实践笔记(15):STM32中断系统

如果如果占先式优先级相同,两个副先级虽然不同的中断,先后到达,那么先运行先到达的中断,后面的中断到来后,就算其副先级更高,也不能抢断,只能等到前面中断运行后再运行。无论是CPU正执行一个中断而来了一个新的中断,还是CPU没有执行中断而新来了两个中断,只要两个中断的占先式优先级相同,那么都不会发生中断的嵌套。甚 至就算CPU正在执行一个中断,只要新的中断的占先式优先级的数值更小,它就会先执行这个新的中断,这个就是中断的嵌套。表中的位置栏,是指在同样优先级的顺序下,优先处理哪一个中断,数值越小,优先级越高。

2024-04-18 11:58:40 547

原创 STM32学习和实践笔记(14):按键控制实验

LED1闪,不使用直接在while里延时的方式 ,而是通过一个i做中间变量的方式 ,是因为假设直接使用延时,因为想看到灯闪,延时的时间就需要较长,而在延时的时间里,CPU等于延在那空等,这个时候按动按键,按键的检测可能反应就不够快!PA0片内配置成下拉电阻,平常为低电平,当按键按下时,检测到下拉电阻上有高电平,即表示按键按下。软件方法就是在首次检测到低电平时加延时,通常延时5-10ms,让抖动先过去,然后再来检测是否仍为低电平,如果仍然是,说明确实按下。消除抖动有软件和硬件两种方法。

2024-04-17 14:49:24 334

原创 STM32学习和实践笔记(13):数码管显示实验

共阴与共阳在码表上其实就是正好取反就可以了,所以可以共用一个码表。)主函数控制(将数值段码发送到对应端口上)。共阳就是共正极,也就是正极全部接在一起。共阴就是共负极,也就是负极全部接在一起。我目前使用这款PZ6806L,使用了。)使能数码管端口时钟、初始化。数码管显示程序主要分为。

2024-04-16 11:57:40 338

原创 STM32学习和实践笔记(12):蜂鸣器实验

无源的没有内部振荡器,需要输入1.5-5KHZ的音频信号来驱动压电蜂鸣片发声。蜂鸣器主要分为两种,一种是压电式的无源蜂鸣器,一种是电磁式的有源蜂鸣器。因此STM32需要供给它1.5-5KHZ的音频信号,才能让它发声。改变供给它的方波的占空比,则可以控制蜂鸣器发出的声音大小。实验是成功的,蜂鸣器正常地以5KHZ的频率声音响了起来~有源的内部有振荡器,因此只需要供给直流电压就可以了。改变供给它的方波的的频率,可以调整蜂鸣器的音调。这款PZ6806L,是使用的无源蜂鸣器。后面可以试着用蜂鸣器来发起相应的歌声~~

2024-04-15 15:26:32 258

原创 STM32学习和实践笔记(11): Systick定时器实现LED精确定时闪烁

Systick定时器实现LED精确定时闪烁,试验成功。

2024-04-14 00:15:00 242

原创 STM32学习和实践笔记(10): Systick定时器介绍

sysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个外设,被嵌入在 NVIC中。(NVIC:嵌套向量中断控制器,属于内核外设,管理着包括内核和片上所有外设的中断相关的功能)它是一个24位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自系统时钟,还可以通过系统时钟8分频后获取。当定时器计数到0时,将从LOAD寄存器中自动重装定时器初值,重新向下递减计数,如此循环往复。

2024-04-13 00:15:00 457

原创 STM32学习和实践笔记(9): 使用位带操作实现LED闪的实验

(这个地方与前面的描述有不一致,前面这个bit只有0-7这三8个值,但是这里可以从0-15,但根据公式,只要基地址不变,那么算过来的相应的地址也会是正确的,这个n在公式里,就起到每多一个位,就偏移4个地址的作用。所以,当我输入PAout(1) =1时,根据上面所说的第三行的作用,那我通过对位带别名区对应地址的操作,而更改到了ODR寄存器里数据的某一bit位,从而实现了对某一个具体的pin的输入输出的直接操作!再由前面的公式,就算出对应的位带别名区的地址,并对该地址的值进行操作。

2024-04-12 00:15:00 527

原创 STM32学习和实践笔记(8): 理解位带区和位带别名区

控制PortC上的那些引脚的寄存器,他们的址址是从0x4001 1000一路排到0x4001 13FF,一共有1024个地址(也就是1K),其中,最开始的4个地址,就分配给了。这样,当我在位带别名区根据某个32位的起始地址对其操作时,我就可以直接将其全部清0或全部置1,这样做,就相当于对位带区的某1位进行操作。0x40000001,那么同样根据上述公式,也能得到正确的地址,计算的结果,就是在基地址基础上增加了32位的偏移而已。那么对应的这32位,也只有两种情况,要不就是全为0,要不就是全为1。

2024-04-11 11:27:00 882 1

空空如也

空空如也

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

TA关注的人

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