自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stm32定时器同步(二)

旧瓶装新酒,就是门控模式加一个TRGO,如果看到这里你还没有明白,那就去看看我前面的文章。代码部分也是旧瓶装新酒。

2024-08-28 22:36:31 429

原创 stm32定时器同步(一)

所谓预分频,指定时器1输出一个时钟信号,作为定时器2的输入信号。而通过配置定时器2的时基单元,可以将定时器2作为定时器1的一个分频信号。举个例子,定时器1输出10kHZ的时钟,而定时器210分频,也就是输出1kHZ的信号,那我们就称之为。主要过程就是定时器1主模式输出TRGO,进入定时器2的ITRx,,在选择为TRGI后选择从模式,进入时基单元,最后就可以获得一个分频后的时钟信号,流程用红笔标出。下面是一个配置代码,主频72MHZ,下面是手册中的示意图,帮助大家理解。定时器同步有多种功能,本文介绍。

2024-08-27 15:38:26 589

原创 stm32定时器强制输出模式

置TIMx_CCMRx寄存器中相应的OCxM=101,即可强置输出比较信号(OCxREF/OCx)为有效状 态。手册中还特地提了一嘴:中断和DMA请求是不受这个影响的,CCR和CNT该比较还是得比较。是用来清空这个临时变量的。在一些特殊场景中,我们可能没法等待CNT溢出,需要一个脉冲信号或者电平跳变信号,这时就可以用到我们的强制输出模式。强制输出模式是通过软件强制输出高低电平,与CCR和CNT无关。

2024-08-25 23:14:39 592

原创 stm32定时器从模式:触发模式

TI2一个上升沿作为触发事件,使能计数器。而TI2上升沿和计数器启动计数之间的延时,取决于TI2输入端的重同步电路。因为通过外部时钟模式2我们可以获得外部ETR引脚的信号,再利用从模式的触发模式这一方法可以以外部时钟信号,加之内部信号TI2进行计数。我们平常计数器使用的时钟是内部时钟,而所以要通过一系列分频操作进行准确计数,而当我们希望能利用外部时钟作为时钟信号源,就可以利用。触发模式是定时器三种从模式之一,输入端选中某一事件可以触发定时器开始工作,流程十分简单大家配合图看理解更为容易。

2024-08-24 23:41:57 526

原创 stm32定时器从模式:门控模式

门控模式是定时器三种从模式之一,在这种模式下,计数器的计数操作由某个输入信号(通常是一个外部引脚)来控制。计数器只有在这个输入信号处于某种特定状态(如高电平或低电平)时才会进行计数,当输入信号的状态变化时(例如从低电平变为高电平),计数器会停止计数。在图中我们也不难看出即使计数器使能或者失能,还是离计数器真正开始计数或停止计数有一段延时,这个取决于于TI1输入端的重同步电路。图中可以看出TI1在置0时是有效的触发输入电平,而光光TI1置0还是不行的,还需要使能计数器。

2024-08-23 23:59:15 374

原创 stm32单脉冲模式

在单脉冲模式下,定时器可以被配置为在接收到一个外部或内部触发事件后,产生一个可控延迟和脉宽的单次脉冲。当定时器到达下一个更新事件(UEV)时,计数器会自动停止,这意味着在产生了一个脉冲之后,定时器不再继续计数。当计数器达到设定的值时,输出信号产生一个从低到高的跳变,形成脉冲的上升沿。:在触发信号到来后,计数器根据配置的值(tDELAY)产生一个延迟,直到该延迟时间结束,脉冲开始。下面是一个简单的配置代码,主要思路很简单,就是配置输入捕获,输出比较、时基单元和选择单脉冲模式。

2024-08-22 21:10:30 748

原创 通用定时器的中央对齐模式

设置TIMx_CR1寄存器中的URS位可以选择产生更新事件时是否设置更新中断标志UIF(TIMx_SR寄存器中的UIF位)。:在中央对齐模式下,TIMx_CR1寄存器中的DIR位(计数方向位)不能手动设置,因为计数方向由硬件自动管理。在中央对齐模式,计数器从0开始计数到自动加载的值(TIMx_ARR寄存器)−1,产生一个计数器 溢出事件,然后向下计数到1并且产生一个计数器下溢事件;就像手册中的图示,ARR=6,当CNT达到5时产生一个更新事件,随后又从6开始递减,当减至1时又产生一个更新事件。

2024-08-22 20:41:57 288

原创 S3C2410 RTC关于“千年虫问题”的解决

而S3C2410由于一个计数器只能记录两位BCD码,比如1900年和2000年均记录为00,导致时间的混淆,所以RTC通过硬件支持,将00默认为2000年,而非1900年。一般我们所说的“千年虫问题”是指在20世纪末期,人们担心计算机系统将年份“00”解释为1900年,而不是2000年,从而导致计算错误。这张硬件图可以帮大家更好理解这个过程,其实闰年产生器是接受DAY\MONTH\YEAR三个寄存器的值,输出相应的DATE值。有了硬件的逻辑支持,闰年产生器就可以顺利的依据年份和月份产生相应的每月的天数。

2024-08-21 23:38:48 219

原创 I/O口基本结构的知识点整理

2.上侧接上拉电阻和下拉电阻,开关由电路控制,上拉电阻导通就是上拉输入模式,下拉电阻导通就是下拉输入模式,两个都断开是浮空输入模式。当引脚什么都不接,输入电平与上下拉电阻有关,其阻值比较大,是弱上拉和下拉,为了防止对引脚输入产生影响。5.推挽输出,pmos和nmos均有效,输出寄存器输出1时,nmos截止,pmos导通,输出高电平,输出0相反。设置为1,该位写1,其余写0,清除为0也是这样操作。输出寄存器输出1,nmos断开,为高阻态,输出0,输出低电平。7.输入模式下,输出无效;输出模式下,输入有效。

2024-08-21 23:05:19 280

原创 自动重装影子寄存器

当ARPE=1,也就是进行预装载时,ARR任然会立即更新,但是自动重装影子寄存器则不会立即更新,此时真正起作用的也是影子寄存器。当ARPE=0,也就是不进行预装载,ARR立刻更新,CNT溢出的值也随之更新,比如ARR从A0更新至B0,而此时CNT的值为90,CNT将不再至A0溢出,而是在B0溢出。当然其实对十几万HZ的时钟而已这一点误差是可有可无的,甚至不会超过几微妙,但是有这样的功能总比没有好。很痛心这个内容下的帖子都是一大串文字,怎能让人明白,所以先贴图为敬。

2024-08-20 15:57:12 297

原创 存储保护单元(MPU)的简介

特别是在多任务操作系统中,MPU通过定义不同的内存区域,为每个任务分配独立的内存区域,确保了操作系统的核心安全和数据的完整性。MPU支持分成8个region,每个region又可以分成更小的子region,但是子reigion最少需要256字节的空间。最后置1使能MPU即可。其中地址为0xE000ED98的是MPU的region寄存器(MPURNR),用于选定是哪一个region。R0+8则是真正意义上对region的属性进行配置,由于英文手册的配置过于琐碎杂乱,故展示中文手册的配置表。

2024-08-20 14:57:43 593

原创 S-R锁存器在报警器上的一个应用

我们所希望的报警器是可以有一个总控开关进行控制,人不在家时,只要开门警报就会被触发,无论是否关门都无法解除警报,除非按下总控开关。而S-R锁存器很好的完成了这一点,下图是S-R锁存器的输入输出图。如果传统报警器仅仅由一个开关控制,例如开门时报警,关门时警报接触,那很可能难以达到我们的要求。当我们在电路中增加一个S-R锁存器,即可达成该功能。当R端接通置1,无论S端置0还是置1,输出端Q均为0。当触发事件完成后即可关闭按钮。

2024-08-19 16:33:50 330

原创 CD74HC30的介绍

其中ABCDEFGH八个引脚为输入,通过若干个非或门,产生一个输出Y。9,10,13号引脚均为无效引脚。下面是手册中的具体介绍。

2024-08-19 16:06:50 251

原创 ARM指令集ADDS介绍

V(Overflow flag,溢出标志):如果加法操作产生了有符号溢出,则设置 V 标志为 1。C(Carry flag,进位标志):如果加法操作产生了进位,则设置 C 标志为 1。N(Negative flag,负号标志):如果结果为负数,则设置 N 标志为 1。Z(Zero flag,零标志):如果结果为零,则设置 Z 标志为 1。可以通过循环检验Z位是否被置1来确定R0是否达到0。

2024-08-18 16:37:08 281

原创 扫描键盘代码及分析

其实底层逻辑相当简单,通过不停的左移i,然后取反,依次拉低每一行的GPIO。随后在拉低每一行后检查是否有某一列同时被拉低,如果有将列数据记录在[0:2],最后合并一下列数据和行数据,每一个按键就会有一个独特的16位数字相匹配了。这样其实可以增加I/O口的利用资源,无需一个按键对应一个I/O口了。

2024-08-18 10:23:55 267

原创 STM32F10xxx中文手册关于GIPO部分的勘误

再询问我们可爱的chatgpt-4和网上少的可怜的关于肖特基触发器的资料之后我对什么是肖特基触发器仍然毫无头绪。但是在翻阅英文手册后真相大白。今天笔者在翻阅STM32F10xxx中文手册时发现GPIO示意图中出现了一种全新的元器件——肖特基触发器。所谓“肖特基触发器”其实就是“施密特触发器”,并且也符合在施密特触发器前仍然可以进行模拟输出的原理。

2024-08-18 09:51:53 113

原创 S3C2410关于中断部分中文手册的解释

也就是说,当任何一个中断源请求服务时,SRCPND寄存器中对应该中断源的位会被置为1,表示该中断源请求了中断。只有经过仲裁,处理器决定要处理某个中断后,INTPND寄存器中对应的位才会被置为1。同时,处理器还会检查处理器状态寄存器中的I位(中断屏蔽位)和F位(快速中断屏蔽位)。为了防止中断请求持续影响系统,在中断服务函数中,需要手动清除SRCPND和INTPND寄存器中对应的位。但是因为这个中断源被屏蔽,所以处理器不会处理它,因此INTPND寄存器中的对应位不会被置为1。

2024-08-17 15:22:07 412

原创 OSSched()函数详细介绍

当调用 OSSchedLock() 函数时,这个变量的值会增加,表示任务调度被锁住,即调度被临时禁止。如果 OSIntNesting 等于0,意味着当前系统中所有的中断服务程序(ISR)都已经执行完毕,系统不再处于处理中断的状态,允许任务调度。如果就绪表中存在一个优先级高于当前正在运行任务的任务,并且满足前两个条件,那么就应该触发任务调度,将CPU控制权切换给该高优先级任务。它的主要作用是检查当前系统中是否有更高优先级的任务就绪运行,如果有,则执行任务切换,将CPU控制权转交给该任务。

2024-08-17 13:42:58 286

原创 定时器时钟模式1、2与主从模式

但是从模式的触发源不一定是上一个定时器的TRGO,也可以是其他信号。所以当我们选择一个定时器为从模式,不一定要有主模式的定时器的配置,只是单单希望利用一下从模式的功能比如复位、门控和触发功能也是未尝不可的。很多初学者在初学定时器时经常被时钟模式1和时钟模式2,主从模式这三个概念混淆。网上繁多的资料也让大家看的云里雾里,下面我将通俗介绍一下什么是时钟模式1、时钟模式2,主从模式。不难看出TIMx_ETR同时可以配置时钟模式1和时钟模式2,但是我们为了防止占用通道,我们往往将其配置为时钟模式2。

2024-08-17 12:31:11 515

原创 位带区(Bit-Band)

【代码】位带区(Bit-Band)

2024-08-17 11:23:57 381

S3C2410X英文技术手册

很难相信到现在S3C2410的英文手册**文库还会收费,为了帮助一些新人踩坑,免费分享

2024-08-21

空空如也

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

TA关注的人

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