
stm32自学笔记
pmj110119
如无必要,勿增实体
展开
-
STM32自学笔记(一)GPIO配置与使用
由于是stm32学习的第一个章节,会啰嗦一些,旨在帮助和我一样刚接触stm32时一头雾水的朋友,更好地理解、学会它。 很多学过51,刚开始学stm32的朋友可能会和我一样十分不适应,在我看来,stm32与51代码最大的区别在于,stm32几乎所有外设都要进行配置过后才能使用,比如说你想操作一个IO口,那么首先要对这个IO口所挂载的时钟进行使能,再对此IO口进行配置...原创 2019-02-02 00:06:22 · 4305 阅读 · 0 评论 -
STM32自学笔记(二)中断
一个完整的中断设置包括:使能,中断分组,屏蔽,IO口映射NVIC中断优先级管理(这段具体写代码时不太会涉及,可跳过)结构体NVIC_Type中有如下寄存器 ISER[8]:中断使能寄存器组,为8个32位寄存器,控制CM3内核的256个中断 由于STM32F103的可屏蔽中断只有60个,故我们只会用到 ISER[0] 和ISER[1] . ISER[0] 的bit0~bit31...原创 2019-02-02 10:59:18 · 2110 阅读 · 0 评论 -
STM32自学笔记(四)定时器中断
定时器离不开中断,前置技能——中断若没有加点的话,可以去下面的链接看下传送门:https://blog.youkuaiyun.com/pmj110119/article/details/86748016TIM功能简介STM32F1的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能包括: 16位自动装载计数器(TIMx_CNT) 16位可编程预分频器(TIMx...原创 2019-02-03 14:10:38 · 1913 阅读 · 0 评论 -
STM32自学笔记(五)串口通信
(想要深入理解就把前面的看下,否则直接看使用总结即可)usart文件夹usart 文件夹内包含了 usart.c和usart.h两个文件。这两个文件用于串口的初始化和中断接收。代码只针对了串口1,如果要用其他串口需要对代码稍作修改。usart.c包含了2个函数,在下文分别进行讲解 void USART1_IRQHandler(void); void uart_init(u3...原创 2019-02-03 21:10:44 · 3032 阅读 · 0 评论 -
STM32自学笔记(三)外部中断
stm32每个IO口都可以作为外部中断输入口。F103支持共19个外部中断/事件请求。每个中断设有状态位,有独立的触发和屏蔽装置。STM32F103的19个外部中断为:线0~15:对应IO口的输入中断线16:连接到PVD输出线17:连接到RTC时钟事件线18:连接到USB唤醒事件中断线与GPIO的映射GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E...原创 2019-02-04 22:32:57 · 1649 阅读 · 0 评论 -
STM32自学笔记(六)PWM输出
使用定时器进行PWM输出STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定 时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4 路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出。需了解的寄存器用到3个寄存器:捕获/比较模式寄存器 (TIMx_CCMR1/2)...原创 2019-02-04 22:38:29 · 2615 阅读 · 0 评论 -
STM32自学笔记(七)ADC
1)编写adc.c文件编写adc.c文件,里面放以下三个函数1. Adc_Init (void):用于ADC的初始化,需要在main()中调用一次。 (需要根据具体情况修改,在第四节会讲如何修改)2.Get_Adc(ch):读取某个通道的AD采样值。传递参数直接填通道名,例如通道1:ADC_Channel_1(需要根据具体情况修改,在第五节会讲如何修改)3.Ge...原创 2019-02-05 13:04:06 · 6301 阅读 · 1 评论 -
STM32自学笔记(八)输入捕获
原理讲解输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7, 其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx上的 边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器计数器的值(TIMx_CNT) 存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置 捕...原创 2019-02-19 23:18:31 · 1276 阅读 · 0 评论