推荐阅读最新更新时间:2024-11-04 18:12
关于STM32 DMA的使用
1.DMA的使用范围: DMA(直接存储器存取)提供在外设与存储器之间或者存储器和存储器之间的高速数据传输使用。注意这里的外设指的是32的外设,比如spi、usart、iic、adc等基于APB1 、APB2或AHB时钟的外设,而这里的存储器包括32自身的闪存(flash)或者内存(SRAM)以及外设的存储设备都可以作为访问的源或者目的、 注意外部存储设备其自身在这就是外设了,配置时属于外设,不要与配置寄存器的存储设备混淆 2.以目前嵌入式为例,DMA和CPU两者怎么实现分时使用内存: 通常采用以下三种方法:(1)停止CPU访内存;(2)周期挪用;(3)DMA与CPU交替访问内存. 停止CPU访问内存 当外围设备要求传送一批
[单片机]
在HAL库中用定时器实现自定义延时函数delay_us()
STM32程序从标准库移植到HAL库的时候,会发现HAL库中只有一个毫秒级延时函数HAL_Delay(),而没有微秒级延时delay_us(),本文就在HAL库中用定时器实现这个delay_us()。 如下图,找到HAL_Delay()函数定义的地方,发现这个函数有__weak标识,是一个弱化函数,可以被重写。 由于HAL库许多地方都使用了HAL_Delay()函数,为了避免惹麻烦建议不重写,可以用定时器自己写一个延时函数。 开发软件用的STM32CubeIDE,此Cube软件的使用方法可以参考这篇文章:STM32外部中断实例。 项目设置,勾选后每个外设的源文件.c、头文件.h分别成双出现。 我用的是ISP编程,选择的是S
[单片机]
MSP430用按键中断控制定时器产生持续 1s 的周期信号
////////////////////////////////////////////////////////////////////////////////////////////////////// // 2012 年吉林省大学生电子设计大赛 C题 声源定位系统 ----(声源部分) // 要求: 有信号产生电路, 放大电路, 声音频率 800Hz 左右, 按一次键响声持续 1 秒. // 声源模块体积不超过 4cm*4cm*4cm. //==========================================================================================
[单片机]
51单片机计数器与定时器的区别
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。 在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆,下面我将对这方面的内容结合自己的学习经验谈几点看法。 计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触
[单片机]
51单片机占空比设计
Proteus仿真 P3.0输出占空比 T+、T-设置占空比时间,每按一次加或减100ms R+、R-设置占空比加减1% 初始为100ms 占空比50% 数码管前两位显示时间单位s,后两位显示占空比单位% 示波器显示 使用定时器,避免了数码管显示和按键扫描延时,实现占空比实时输出。避免因延时等待。 12MHz晶振程序如下 #include reg52.h #define CLOCK 12000L #define Fosc 12000000L #define TMR 1 #define TMR_B
[单片机]
Systick定时器几个简单的函数简介
Systick定时器 Systick定时器是什么? Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作; SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常中断请求(异常号:15); Systick中断的优先级也可以设置。 SysTick的四个寄存器 寄存器对应的位 Systick时钟源选择函数SysTick_CLKSourceConfig() 函数体定义 void SysTick_CLKSourceConfig(uint32
[单片机]
基于FPGA的高速可变周期脉冲发生器的设计
1 引 言 要求改变脉冲周期和输出脉冲个数的脉冲输出电路模块在许多工业领域都有运用。采用数字器件设计周期和输出个数可调节的脉冲发生模块是方便可行的。为了使之具有高速、灵活的优点,本文采用Atelra公司的可编程芯片FPGA设计了一款周期和输出个数可变的脉冲发生器。经过板级调试获得良好的运行效果。 2 总体设计思路 脉冲的周期由高电平持续时间与低电平持续时间共同构成,为了改变周期,采用两个计数器来分别控制高电平持续时间和低电平持续时间。计数器采用可并行加载初始值的N位减法计数器。设定:当要求的高电平时间以初始值加载到第一个减法器中后,减法器开始减计数,计数到零时自动停止,同时启动第二个记录低电平持续时间的计数器
[测试测量]
ATmega 16 单片机的WDT定时器的相关寄存器(七)
1.WDTCR 看门狗定时器控制寄存器 WDTOE WDE WDP2 WDP1 WDP0 位 Res:保留位 ATmega16保留位,读操作返回值为零。 位 4 WDTOE:看门狗修改使能 清零WDE时必须置位WDTOE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4个时钟周期之后将其清零。 位 3 WDE:使能看门狗 WDE为 1 时,看门狗使能,否则看门狗将被禁止。只有在WDTOE为 1 时WDE才能清零。以下为关闭看门狗的步骤: (1).在同一个指令内对WDTOE和WDE写 1 ,即使WDE已经为 1 (2).在紧接的4个时钟周期之内对WDE写 0 位 WDP2,
[单片机]