STM32系列芯片拥有最少3个、最多8个16位的定时器,这是定时器通过可编程预分频器驱动的16位自动装载计数器构成。定时器的主要功能有如下几个大点:1.16位向上、向下、向上/向下自动装载计数器。2.16位可编程预分频器
ROM和RAM指的都是半导体存储器,ROM是ReadOnlyMemory的缩写,RAM是RandomAccessMemory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大
STM32的IAP功能确实方便,以前对此如何实现有所了解,但是一直没去测试,这两天来练了下,可谓困难重重,搞了两天问题也一一解决,下面做些简要的笔记IAP就是在线应用编程,方便程序升级,可以不用打开产品,直接通过
实验程序:/*******************************led.c*********************************/#include"stm32f4xx.h"//在SYSTEM目录下可以找到,把ST官方的部分库抽取出来,组成了一个SYSTEM目录#include"sys.h"voidLED_Ini
DMA可以认为连接两个“地址”数据通道。DMA共享系统总线,不占用CPU,所以可以实现快速数据传输。这里以DMA连接存储器(数组)和串口(USART1->DR)为例。1 void DMA_init(void)2 {4 RCC->AHBENR|=1DR;//读外设串口数据
一直都是用STM32做项目中的主控芯片,在编程的时候,之前一直忽视了一个问题,那就是寄存器的位置是如何定义的,为什么用一个USART1->CR操作就能够给这个CR寄存器赋值?其实这是一个比较底层的问题,不懂这方面的知识
Flash的操作:stm32大容量的flash不仅用来存储程序代码,还可用来存储一些数据和系统用户的参数。程序的代码一般保存在从flash开始区域,剩下的区域空间大小可以用来存储用户数据(大小取决于Flash的大小和代码占用空
栈增长和大端/小端问题是和CPU相关的两个问题.1,首先来看:栈(STACK)的问题.函数的局部变量,都是存放在"栈"里面,栈的英文是:STACK.STACK的大小,我们可以在stm32的启动文件里面设置,以战舰stm32开发板为例,在startup_s
其实stm32本身的硬件SPI也很好用,但是还是想用软件来模拟一下PSI的时序。SPI是一种高速的,全双工,同步串行的通信总线。SPI通信方式相当于是一个环形结构,由CSN、MISO、MOSI、SCLK四线组成,主要是在SCLK时钟线的
在进行STM32f103的时候,进行中断分组的相关概念Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下:第0组:所有4位
1、依据stm32的类型(主要是flash的大小),定义各种中断向量表的顺序;2、定义数据类型3、定义MCU外设相关的结构体:4、定义外设在FLASH中的地址:5、进行外设寄存器的位定义
一个简单的工程搭建好之后,进一步就是了解里面的内容,也就是学习进入正轨。打开我之前新建的工程,主要调用的几个函数就是今天学习的内容,接下来我就讲解一下那些内容。一、初始化时钟这里的“时钟配置”函数在bs
本文结合网上的两篇时钟分析文章,并结合本人的理解来分析STM32的时钟系统。众所周知,一个微控制器或处理器的运行必须要依赖周期性的时钟脉冲来驱动,通常是通过外接晶振来实现的。在学习单片机(51系列,AVR系列,
在源程序中加入如下代码,包含“stdio.h”。默认使用USART1,确认串口已经初始化成功、#pragmaimport(__use_no_semihosting)_sys_exit(intx){x=x;}struct__FILE{inthandle;/*Whateveryourequirehere.Iftheonlyfileyo
输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降
STM32有两个寄存器可以控制IO输出, 一个是ODR寄存器, 只使用了低16位. 向此寄存器写数据, 就可以控制某个引脚的输出电平.BSRR寄存器是端口位设置/清除寄存器. 此寄存器和ODR寄存器有类似的功能, 都可以来用设置GPIO端
看到了一片关于stm32 nvic的解释,使用到了阶级 和阶层的概念,很形象化也很容易理解。链接:http://blog.sina.com.cn/s/blog_5f17618501012rpp.htmlNVIC——NestedVectoredInterruptController(嵌套中断向量控制器)
J-link几乎可以调试所有的arm芯片,不得不说是个好东东。这里记录三种stm32的下载程序方式:1.J-Flash下载(需要用到J-link)2.MDK配置下载(需要用到J-link)3.ISP下载(串口下载,需要用到官配串口下载软件,用过s
由于当时写的时候很白菜,h文件和c文件放一块了,不过加到工程里时也这么一段代码,无线模块就能用了,虽不规范,但用起来还凑合。单片机用的是STM32104VC,无线模块是淘宝买的NRF24L01,简单实用,效果不错。配置文件
简单实现STM32 CRC32使用使用前记得使能STM32 CRC时钟//STM32硬件CRC32byte数据计算,将数据移到最高位,低位补上FFu32stm32_crc32_byte(u8*pBuff,u32len){u32i;u8buff[4];u32*p32=(u32*)buff;CRC->CR=1;//复位CRC寄存