带你走进stm32-cubemx源码
_Madrid
华而无实
展开
-
cubemx_time_pwm分析
PWM模式下可以产生一个由ARR(自动重装载寄存器)寄存器确定频率,CCR(捕获比较寄存器)寄存器确定占空比的信号。在设置时自动装装载的预装载位和捕获比较寄存器的预装载位。这样只有发送更新事件预装载寄存器的值传到影子寄存器,所以开始计数前通过设置EGR寄存器的UG位来产生一个更新事件初始化定时器。我们这里讲解的就选取向上计数。都是一样的道理。还是首先是一个时基单元的参数配置。直原创 2017-02-20 17:33:06 · 2580 阅读 · 0 评论 -
cubemx_systic定时器
cubemx生成的工程中再主函数的页面都会有void SystemClock_Config(void)函数,这个函数我们今天只看有关于systic的部分。 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* S原创 2017-02-15 20:24:57 · 1548 阅读 · 0 评论 -
cubemx_tim_base源码分析
stm32的定时器分为三种:基本,通用,高级。功能肯定是越来越强的。今天我们讲的是最简单的基本定时器。基本定时器的作用就是定时一定的时间,当然在更新事件来的时候可以产生中断和DMA请求,还可以触发DAC同步电路。我们今天分析的是产生定时器定时一段时间后产生更新中断的例子。从基本定时器的框图来看,基本定时器由三部分组成,预分频器,计数器,自动重装载寄存器。自动重装载寄存器,这个寄存器原创 2017-02-02 13:31:38 · 3136 阅读 · 0 评论 -
cubemx_usart_dma源码分析
这个工程无非就是讲USART和DMA综合起来,此处DMA的模式不再是储存器到储存器。我们直接看这个工程中和串口,DMA的不同之处。在配置了串口和DMA参数初始化后,有一条语句。是一个带参数的宏。__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx);#define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_F原创 2017-02-01 20:49:21 · 3673 阅读 · 1 评论 -
cubemx_dma源码分析
这次我们利用cubemx生成的DMA工程师从内存到内存的模式。这个工程的配置很简单。这个初始化函数只是开启了DMA外设时钟,并且配置了时钟参数后将参数写到寄存器中。我们可以看出这个模式是DMA1通道1。这个不是凭空的,可以从手册中DMA请求映像得知。而且当外设发送一个事件后,通过自己DMA通道像DMA控制器发出请求信号,如果多个同时发出,DMA控制器根据通道优先级处理,在软件优原创 2017-02-01 10:22:52 · 1125 阅读 · 0 评论 -
cubemx_usart_r&t_it分析
我们再cubemx中配置USART的时候选择开启USART1全局中断,对应到代码当中,只是开启了中断通道,配置了此中断通道的两个优先级。这一步的目的是当某个中断源对应的中断事件发生时,我们可以通过此通道向内核发出请求,即满足条件的时候可以进入中断服务函数。然而一个中断通道,对应着的是一个外设,而一个外设有好多中断源。所以当我们使用发送和接受中断时,必须开启它们的中断源。而且发送中断搭配了发送完原创 2017-01-31 18:28:34 · 1449 阅读 · 0 评论 -
cubemx_usart源码分析
生成的代码是异步模式,波特率115200,接受和发送模式,一个停止位,无校验,带中断。cubemx生成代码后,主要分为GPIO和USART两部分的驱动代码。void MX_GPIO_Init(void){ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE();}GPIO文件中只有这一原创 2017-01-23 14:22:35 · 5636 阅读 · 0 评论 -
cubemx_led分析
这是stm32cubemx生成的gpio驱动代码。时钟配置,默认输出电平,选择特定的GPIO,引脚和输出模式。我们一条条分析其中代码。(相似的代码跳过)__HAL_RCC_GPIOB_CLK_ENABLE();第一条代码是使能了GPIOB的时钟,宏定义是对代码的解释。_IO是C语言volatile关键字,此关键字是说明此关键字修饰的变量不做优化,每次使用它必须从原创 2017-01-22 12:24:30 · 726 阅读 · 0 评论 -
串口
stm32串口原创 2016-12-31 16:39:24 · 325 阅读 · 0 评论