![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32F1
Dr_Haven
爱学习,爱编程,爱咖啡也爱可乐;
爱挑战,爱专研,也爱玩游戏;
爱晚起,也爱工作到深夜;
擅长技术,也崇尚简单和懒惰;
神秘而孤僻,沉默而爱憎分明;
我行我素。
展开
-
KEIL5.38 STM32新建工程core_cm3.h报错
网上找了很久,什么说法的都有,自己定义__INLINE的,都不行。因为我自己装的版本是5.38比较新,多了一个新的编译器版本如下图。后面才发现别人的工程魔术棒里是ARM Compiler不一样。这样导致新的编译器和旧的core_cm3不兼容。新建工程,该做的都做了后,编译发现报错。而且打开别人的工程,编译是正常的。把编译器从6降低到5,如下图。原创 2023-06-01 11:07:48 · 845 阅读 · 1 评论 -
STM32F1笔记(十三)SPI
SPI:Serial Peripheral interface,串行外围设备接口。SPI接口一般使用4条线通信:MISO主设备数据输入,从设备数据输出。MOSI主设备数据输出,从设备数据输入。SCLK时钟信号,由主设备产生。从图中可以看出,主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。寄存器通过MOSI信号线将字节传送给从机,从...原创 2018-09-13 18:04:15 · 2901 阅读 · 0 评论 -
STM32F1笔记(十二)DAC
先看《STM32中文参考手册》中DAC的介绍 引脚的定义与ADC类似这里需要留意手册提供的注意,DAC应该是输出,但是GPIO初始化配置时却要设置为模拟输入。DAC配置示例void DAC_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitType; ...原创 2018-09-13 15:35:07 · 1538 阅读 · 0 评论 -
STM32F1笔记(十一)ADC
查看《STM32中文参考手册》里ADC的介绍和特性 STM32的ADC最大转换速率为1Mhz,即1us,在ADCCLK=14M,采样周期为1.5个ADC时钟下得到。当ADC的时钟超过14M时,将导致结果准确度下降。 规则通道相当于正常运行的程序。注入通道就相当于中断。因此注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。 单...原创 2018-09-13 12:17:25 · 2038 阅读 · 0 评论 -
STM32F1笔记(十)PWM
PWM:Pulse Width Modulation,脉冲宽度调制。是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说就是对脉冲宽度的控制。在《STM32中文参考手册》里可以看到占空比:占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(Duty Ratio)在电信领域中有如下含义:例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。...原创 2018-09-13 11:06:38 · 1727 阅读 · 0 评论 -
STM32F1笔记(九)通用定时器
STM32F1的定时器分为TIME1/8等高级定时器,TIME2~5等通用定时器,TIME6/7基本定时器。三者的区别主要参考《STM32中文参考手册》里特性的每种定时器主要特性的异同。先看中文手册中通用定时器的简介:通用定时器的寄存器有一个比较有趣的地方。该寄存器在物理上实际对应着2个寄存器。一个是程序员可以直接操作的,另外一个是程序员看不到的。看不到的寄存器叫...原创 2018-08-23 15:49:31 · 1257 阅读 · 0 评论 -
STM32F1笔记(八)时钟
STM32有五种时钟源1、HSI。高速内部时钟,RC振荡器,频率为8MHz。2、HSE。高速外部时钟,可接石英/陶瓷谐振器,或者借外部时钟源,频率范围为4MHz~16MHz。3、PLL。锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择2~16倍,其输出频率最大不能超过72MHz(STM32F1)。4、LSI。低速内部时钟,RC振荡器,频率为40KHz...原创 2018-08-23 15:17:30 · 1802 阅读 · 0 评论 -
STM32F1笔记(二)GPIO输入
STM32 GPIO输入的经典应用是按键。先看电路。声明:参考正点原子战舰开发板。在这里可以看到,KEY_UP按键是高电平有效的,即当按下该按键时,GPIO读到高电平。KEY0/1/2是低电平有效的,即当按下该按键时,GPIO读到低电平。而且外部电路都没有上下拉电阻。所以,需要在STM32内部配置上下拉。上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流...原创 2018-08-20 16:11:07 · 1123 阅读 · 0 评论 -
STM32F1笔记(七)WWDG窗口看门狗
窗口看门狗与独立看门狗最大的不同是中断,窗口看门狗拥有一个提前唤醒中断。也就是在快要产生复位的前一段时间(T[6:0]=0x40)来提醒需要进行喂狗,否则将复位。因此当窗口看门狗的计数器值减到0x40的时候,产生中断,在中断里向WWDG_CR重新写入计数器的值,即喂狗。注意进入中断后,必须在不大于1个窗口看门狗计数周期的时间内重新写WWDG_CR,否则,看门狗将产生复位!T[6:0]就...原创 2018-08-23 11:32:44 · 783 阅读 · 0 评论 -
STM32F1笔记(一)GPIO输出
GPIO:General Purpose Input Output (通用输入/输出)。 GPIO最经典应用:LED灯。先看电路。声明:参考正点原子战舰开发板。与LED串联的电阻称为限流电阻。限流电阻计算公式:R=(U-LED压降)/20ma。U为LED工作电压,LED一般最大电流为20ma。在此R=(3.3-0.7)/0.02=130Ω。因此本次示例中...原创 2018-08-20 15:39:23 · 4080 阅读 · 0 评论 -
STM32F1笔记(六)独立看门狗IWDG
STM32F1内置了两个看门狗,独立看门狗IWDG和窗口看门狗WWDG,可以用来检测和解决由软件错误引起的故障。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。STM32的独立看门狗由内部专门的40Khz低速时钟(LSI)驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独...原创 2018-08-23 11:03:13 · 463 阅读 · 0 评论 -
STM32F1笔记(五)外部中断EXTI
STM32的每个IO都可以作为外部中断的中断输入口。STM32F103的中断控制器支持19个外部中断/事件请求。每个中断设有状态为,每个中断/事件都有独立的触发和屏蔽设置。STM32F103的19个外部中断为:EXTI线0~15:对应外部IO口的输入中断。EXTI线16:连接到PVD输出。(Programmable Votage Detector 可编程电压监测器。连到EXTI的电...原创 2018-08-23 10:40:42 · 1563 阅读 · 0 评论 -
STM32F1笔记(四)NVIC中断优先级管理
STM32将中断分为5个组,组0~4。配置代码如下:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);在标准库里,分组的定义如下: /** @defgroup Preemption_Priority_Group * @{ */#define NVIC_PriorityGroup_0 ((uint32_t)0x...原创 2018-08-23 09:56:08 · 1583 阅读 · 0 评论 -
STM32F1笔记(三)UART/USART
UART:Universal Asynchronous Receiver/Transmitter(通用异步收/发器)USART:Universal Synchronous/Asynchronous Receiver/Transmitter(通用同步/异步串行收/发器)从命名即可看出USART就是UART的基础上添加了同步功能。通常把UART/USART称为串口。串口包含TLL电平...原创 2018-08-22 10:11:48 · 3272 阅读 · 0 评论