推荐阅读最新更新时间:2024-03-16 16:11
STM32——使用PWM+DMA实现脉冲发送精确控制
之前用stm32写过脉冲发送的代码,用来控制步进电机,但是缺点明显,之前是用定时器中断做的,所以一但控制的电机多起来,MCU资源占用就很大,这在大多数情况下是不可接受的,更不用说多轴联动了。 最近做的步进电机CAN总线控制系统,就想顺便重新写驱动。希望做到占用很少的MCU资源,实现脉冲发送的精确控制。既然是用来控制步进电机,那么脉冲的数量和频率一定要可控,要不然怎么实现电机的加减速曲线。于是就想到了DMA。 DMA (直接存储器访问) DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一
[单片机]
一文详解STM32的嘀嗒时钟(SysTick)
简要说明 1概述 嘀嗒时钟(SysTick)是一个简单的系统时钟节拍计数器,它属于Cortex-M4内核嵌套向量中断控制器(NVIC)里的一个功能单元。他是一个24位的倒计时定时器(在NVIC中),当systick计数值到0的时候,SysTick重装载寄存器就会自动重新装载初值。只要SysTick控制和状态寄存器(CTRL)中的使能位没有ENABLE清除掉,那么就会永远的执行下去。 SysTick定时器被捆绑在NVIC中,可产生SysTick异常(异常号:15),属于Cortex-M4内核里的一个功能单元。 SysTick常作为系统节拍定时器用于操作系统(如mCOS-Ⅱ、FreeRTOS等)的系统节拍定时,从而推动任务和时间的
[单片机]
基于机智云物联网云平台+STM32的瓦斯监测控制管理系统
本项目由吉林建筑大学何冬雪、岳俊华开发设计完成,该基于单片机的瓦斯监测控制系统,其硬件主要由 STM32 单片机、甲烷气体传感器、温湿度传感器、Wi-Fi 模块、蜂鸣器报警电路模块、控制电路及显示电路模块等组成。 系统以单片机为核心,能够实时检测到煤矿中的有毒气体,当有害气体的浓度超标时,蜂鸣器会发生声音进行报警提醒工作人员撤离,并开启继电器控制风扇排气,增加空气流通;还结合温湿度传感器采集煤矿的环境,实现煤矿数据的采集与设定阈值对比后,并通过蜂鸣器报警。同时结合 Wi-Fi 模块实现机智云电脑端页面显示和控制,最后还能够通过有机发光二极管显示屏显示。 01 引 言 随着科技的日益进步,人们对能源的需求不断增加。在中国的基本能
[单片机]
STM32关于开关总中断的问题
NVIC 共支持 1 至 240 个外部中断输入(通常外部中断写作 IRQs)。 具体的数值由芯片厂商在设计芯片时决定。此外, NVIC 还支持一个“永垂不朽”的不可屏蔽中断(NMI)输入。NMI 的实际功能亦由芯片制造商决定。在某些情况下, NMI 无法由外部中断源控制。 在 STM32/Cortex-M3 中是通过改变 CPU 的当前优先级来允许或禁止中断。 异常掩蔽寄存器PRIMASK位:只允许 NMI 和 hard fault 异常,其他中断/异常都被屏蔽(当前 CPU 优先级=0,为可编程优先级中的最高优先级) 。 该寄存器可以通过 MRS 和 MSR 以下例方式访问: 1. 关中断MOV R0, #1
[单片机]
STM32使用外部16MHZ晶振修改程序点
做小封装产品设计的朋友或许知道3225-4PIN的晶振,为何8MHZ晶振批量价格要到2元一片,而16MHZ晶振只需要0.4元甚至更少。究其原因是因为3225封装的晶振目前全球最低频率一般为8MHZ,而国内8MHZ达不到精度指标,所以市场上的8MHZ晶振一般为进口晶振,因此成本被垄断。 图1 3225封装晶振 STM32单片机学习者一开始用的晶振一般是2PIN的8MHZ晶振,一旦正真做产品研发的时候,使用到3225的8MHZ晶振的话,成本是个不小的挑战。笔者现针对这个问题,提出使用16MHZ晶振代替的方法。 图2 STM32时钟树状图 由上图可以看出,如果想兼容8MHZ晶振,必须在时钟倍频前2分频。程序设计如
[单片机]
STM32驱动W5100S网口模块实现UDP通讯
STM32驱动W5100S网口模块实现UDP通讯 实现UDP通讯时的资源配置: 软件资源: Keil+串口调试助手+网络调试助手,下载链接(串口助手以及网络调试助手以及调试方法说明):https://download.csdn.net/download/zsj2016o/11071403 硬件资源:PC机+STM32F103最小系统板+W5100S模块+适配器+网线+杜邦线 程序下载链接(包括程序说明):https://download.csdn.net/download/zsj2016o/11071425 具体开发过程如下(包括选型时遇到的问题以及开发说明): 选型时遇到的问题: 在拿到项目需求,了
[单片机]
意法半导体STM32微控制器加密算法库通过美国安全标准认证
中国,2016年7月19日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)的STM32微控制器加密算法库成功通过美国密码算法验证体系(US Cryptographic Algorithm Validation Program,CAVP)验证,有助于客户快速、经济地提高新产品的安全性。 作为STM32Cube软件包的扩展模块,X-CUBE-CRYPTOLIB算法库可直接用于基于STM32的注重安全的产品,包括物联网(IoT)硬件、销售终端设备、智能表计、门禁系统和指纹识别模块。CAVP认证免除了企业的算法验证负担,让那些想要获取美国联邦信息处理
[半导体设计/制造]
STM32库函数SystemInit()的理解
SystemInit()这个函数出现在main()函数的第一行,可以看出它的重要性。以前关于SystemInit()这个函数从来没有关心过,只知道这是进行 STM32 系统初始化的一个函数。今天决定仔细看看,重新开始STM32的学习。这个函数在system_stm32f10x.c中,此C文件主要就是干具体硬件配置相关的工作。 void SystemInit (void) { RCC- CR |= (uint32_t)0x00000001; #ifndef STM32F10X_CL RCC- CFGR &= (uint32_t)0xF8FF0000; #else RCC- CFGR &= (uint32_
[单片机]