STM32
zyzszgj
这个作者很懒,什么都没留下…
展开
-
stm32学习笔记
stm32系统复位后,会执行SystemInit()进行时钟的初始化:次函数的工作如下:1.RCC->CR |= (uint32_t)0x00000001;将HSI时钟模块内部的8MHZ的RC振荡器使能,相当于此时系统时钟为sysclk=8MHZ2.RCC->CFGR &= (uint32_t)0xF8FF0000;复位各种分频值,且配置HSI作为系统时钟3.RCC->CR原创 2017-10-18 13:33:48 · 440 阅读 · 0 评论 -
stm32 pwm实现过程
如果要从某IO端口输出PWM脉冲,相应的工作如下:1.需要一个定时器实现周期循环计数2.设置每个循环周期的比较值,从而实现占空比3.配置某个IO口味定时器的PWM复用功能例如:实现STM32 的 GPIOB_5 管脚输出PWM脉冲:(stm32的定时器都有4个通道, PWM有4种模式,主要区别在于高低电平变化的时刻不同)1.查询芯片手册,GPIOB_5 的复用功能对原创 2017-10-19 10:58:01 · 5079 阅读 · 0 评论 -
STM32 - DMA笔记
DMA的作用形同CPU请了一个搬运工,搬运工负责部分数据的单独处理,CPU可以同时处理其他事件。1.DMA 负责数据的搬运,所以必须要有三个基本要素:数据源,数据目的,数据长度。2.而DMA一般处理 内存和外设,内存和内存之间的事件。因此还需要配置双方的属性,即外设,内存,和数据方向。3.1个DMA通常有多个通道,而处理单一事件只需占用一个通道,所以还需要选择通道。如果有多个通道在工作原创 2017-10-25 09:32:59 · 661 阅读 · 0 评论 -
ucosii 多任务
ucosii多任务的切换发生在延时函数中,因此每个任务必须适当时间调用延时函数,以方便系统重新调度,如果有一个任务是死循环,而且循环里面没有调用延时函数,并且此任务的优先级高于其他所有任务,此时系统不会发生任务切换,其它任务都不会执行,除非此死循环任务的优先级低于其它任务。原创 2017-10-20 16:29:25 · 606 阅读 · 0 评论 -
ucos记录
使用ucos目的:实现多任务,因此必须保证多个任务都能得到CPU时间运行,所以程序中必须要有任务切换调度。任务调度切换发生时机:1.主动进行任务切换:一般在任务种调用延时函数,比如OSTimeDly(ticks),此时会主动让出CPU,执行一次任务调度,选择最高优先级且为就绪状态的任务运行。2.在滴答时钟中断中:多任务的延时是以滴答时钟延时为基本单位,每次产生滴答时钟中断,会遍历每个任务,如果有任...原创 2018-06-22 10:41:02 · 365 阅读 · 0 评论