
STM32
37.20 ℃
这个作者很懒,什么都没留下…
展开
-
stm32笔记——移植uos后出现打印浮点型变量错误的问题
最近再看UOSIII的文档,学习UOSIII。在实操的时候出现了打印浮点型变量错误的问题,在网上找了一下发现这是个常见的问题,所以在这里记录一下这个问题,方便日后的开发。查阅后发现原来是我定义的堆栈没有八字节对齐,在裸机的时候系统默认的堆字节就是八字节对齐的,但UOCIII的用户堆栈并不是这样的。所以这里需要手动的设置它为八字节对齐。一开始我对任务堆栈的定义是这样的: #define TASK1_STK_SIZE 128 OS_STK TASK1_TASK_STK[TASK1_STK_SIZE];原创 2020-07-10 10:11:21 · 354 阅读 · 0 评论 -
STM32输入捕获(库函数版本)
什么是输入捕获?顾名思义,输入捕获就是对输入的信号进行捕获,可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等。STM32输入捕获之前讲过定时器的配置,这里就不原创 2020-07-08 16:05:44 · 1769 阅读 · 0 评论 -
STM32输出PWM信号(库函数版本)
什么是PWM信号?官方解释:PWM信号一般指脉冲宽度调制。脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。相信大家都会很努力的看完它吧。作为一个学习糟糕的大学生,我一般都不看这种官方的解释,我认为的PWM信号就是一种占空比可调的方波,什么又是占空比呢?不知道就去百度吧。懒得百度我也原创 2020-07-08 11:28:52 · 6145 阅读 · 2 评论 -
STM32配置定时器(库函数版本)
本文章以STM32F407ZGTx为例:STM32F407一共有14个定时器,其中有两个基本定时器(TIM6和TIM7)、十二个通用定时器(TIM2 ~ TIM5,TIM9 ~ TIM14)、两个高级定时器(TIM1和TIM8)。由于定时器的功能比较繁多和复杂,这里就不介绍这些定时器的功能了。接着我们开始配置我们的定时器,我这里以TIM2为例。首先我们要开启TIM2的时钟一般通用定时器的时钟都在APB1总线上。接着我们对TIM2进行初始化一般的通用定时器都是这样配置,通用定时器的配置主要是对原创 2020-05-25 23:33:13 · 2862 阅读 · 2 评论 -
STM32配置GPIO--外部中断的配置(库函数版本)
本文章以STM32F407ZGTx为例:STM32F407的外部中断有22个:从图中可以看出STM32F407供IO口使用的中断线有16个,但其每个IO口都能够作为外部中断的输入,他是如何做到的呢?从上图我们可以发现STM32F407是通过映射的方式来将16个中断线分配到每一个IO口上,但这样的映射有个限制:一个中断线每次只能连接一个IO口。配置外部中断首先我们要配置对应的IO口,使能IO口的时钟、外部中断的时钟,设置IO口与外部中断线的映射关系。(这里以PA0为例)一般开启时钟的函数都在原创 2020-05-24 23:04:12 · 4694 阅读 · 0 评论 -
STM32配置GPIO--串口的配置(库函数版本)
本文章以STM32F407ZGTx为例:1、首先我们需要知道能够作为串口使用的GPIO有哪些:这里以串口一为例:PA9作为TX,PA10作为RX。2、对串口的配置:(1)、首先我们要知道串口的配置过程:GPIO的初始化,串口的初始化,NVIC的初始化。故首先我们要先创建这些初始化必要的结构体:(2)、开启时钟(3)、对GPIO进行配置GPIO的配置主要是对GPIO的初始化,这里使用的是stm32f4xx_gpio.c文件里的GPIO_Init(GPIO_TypeDef* GPIOx, GPIO原创 2020-05-23 23:38:36 · 5200 阅读 · 3 评论