-
使用Systick定时器实现延时一、SysTick定时器特性SysTick定时器是一个24位的递减计数器,即vlue自减等于0时触发中断,并重新加载load值,如此循环。在stm32f4库文件中,默认将优先级设置为最低优先级,可进入函数SysTick_Config查看优先级设置。SysTick是Cortex-M内核的一部分,因此只要是Cortex-M内核都有该定时器。SysTi...[详细]
-
一、第一个项目我们要建立第一个项目,这里主要是为了进行项目分析之用,让我们明白用CubeMX是如何开展工作的以及如何追踪代码逻辑。好了,废话不多说,开干。这里我选了一款型号为STM32L151C8Tx作为例子来配置MX,如图所示。按照上图配置完成后,对MX工程进行配置,然后生成代码即可,见图。好了,不出大的意外,第一个项目已经生成。大家自行打开即可。二、项目架构嗯,真的简单...[详细]
-
这个i2c搞了好几天,网上很多人都讲这是ST封装库的问题,而且基本上讲的都是STM32F1系列的片子,甚至给出了一些他们自己研究的成果,至于F4,这方面的说法不多。没办法,从头来吧。研究了下BMP085的datasheet,就是要用I2C读写寄存器,地址为0xee(写),从而计算温度和气压。创建了一个项目文件,把I2C的库文件放进去,写main函数首先配置uart1和I2c:USAR...[详细]
-
本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0|=ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主函数,这一点需要注意...[详细]
-
//观察喂狗与不喂狗的区别,使用PB口的LED指示灯做状态指示。//将PB口的LED指示灯使能开关切换到ON状态。#includeiom16v.h#defineDISP_DDRDDRB#defineDISP_PORTPORTB//看门狗WDT初始化程序voidwdt_init(void){asm(wdr);//c...[详细]
-
PIC系列不同型号的单片机其,看门狗设置不同,下面是以PIC16F688单片机为例。1.如果配置字中的WDTE=1那么后面的看门狗开关(WDT)不起作用,所以当我们程序中有休眠模式的时候我们的看门狗会一直溢出,但是溢出后是否复位,这要看单片机的具体类型了,PIC16F688在休眠唤醒后继续执行程序,不复位,但是其他的单片机看手册。如果我们程序中休眠的时候不需要看门狗,那么我们必须把看门狗关了,...[详细]
-
STM32看门狗总结调原子哥的开发板一年多,基本上能用,但是对于STM32某些基本外设的工作机理还不甚明了。借此暑假的机会对各个外设的功能做一个简短的总结,在提高自己基础知识的同时,也给其他同学提供一些参考。先来看门狗部分的内容。看门狗部分内容当中较难理解的是窗口看门狗,其中窗口值设置以及如何引发复位更是很难搞懂,因此从根本上分析一下窗口看门狗的工作原理,而与其有关的中断则略过。...[详细]
-
在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。其中独立看门狗的时钟由独立的RC振荡器(STM32F10x一般为40kHz)提供,即使在主时钟出现故障时,也仍然有效,因此可以在停止和待机模式下工作。而且独立看门狗一旦启动,除了系统复位,它不能再被停止。但这样引发的一个问...[详细]
-
晶振在电气上可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率为串联谐振,较高的频率为并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频...[详细]
-
使用STM32定时器输入捕获模块控制3路超声波传感器本次使用的超声波传感器是常见HC-SR04,该传感器常常使用在小型机器人和智能小车的避障系统中。在上图中,5v和GND为模块提供电能,Trig用于触发模块测距,Echo用于接受返回电平信号。其操作时序图如下:如上图所示,STM32给Trig引脚一个超过10us的高电平,就可以使能模块内部的测距电路,模块会循环发出8个40kHz脉...[详细]
-
一、功能及目的在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=xBOOT0=0//从用户闪存启动,这是正常的工作模式。BOOT1=0BOOT0=1//从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1BOOT0=1...[详细]
-
在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。2)对于少于100脚的产品,有2种接法:2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD...[详细]
-
一.dma常识.1.作用:实现片内数据之间的高速传输。即是能够不占用cpu实现数据传输。2.模式:外设到存储器传输、存储器到外设传输和存储器到存储器传输三种传输模式。3.stm32中的dma支持外设通道选择,并且可以用仲裁器配置adc对数据流的处理顺序。4.dma带有一个被称为fifo的东西,主要配置fifo来实现对传输双方要求字长不匹配的调整。即所谓FIFO对于要求源地址和目标地...[详细]
-
定时器的输出比较模式产生的PWM波的频率计算的公式:72M/((2*(arr+1))*(psc+1))比如设置:PWM_Init(1000-1,72-1);(PWM_Init(arr,psc);)则每路PWM频率为500Hz。PWM_Init(arr,psc){TIM_TimeBaseStructure.TIM_Period=arr;TIM_TimeBaseStructu...[详细]
-
#includereg52.h#definePORTLENP0sbitbit_select=P2^0;sbitseg_select=P2^1;unsignedcharsrc={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned...[详细]