推荐阅读最新更新时间:2024-03-16 15:36
入坑STM32后,我们应该如何学习?
01 前言 在STM32之前,都是老大头51,带着它的“小弟们” MSP430、AVR、PIC在单片机界呼风唤雨。 那个时候,市场上遍布8位机,大学教材用51入门,个人、企业学单片机基本上也都在用51。 虽然AVR也有一些8位机市场,但与stc带领下的51单片机是完全不能相比的。 当然,这个时候也有16位机的msp430,其他厂家单片机还有pic,高端嵌入式处理器等市场有arm7、arm9等。 这个时期的单片机市场是百花齐放、百家争鸣,但总体来说,还是势均力敌、一片祥和的。 那么,这个局势是从什么时候开始打破的呢?这还得从物联网的崛起说起。 02 原因 当时,物联网(Internet of Things,IoT)逐步进入人们的
[单片机]
简析STM32 I2C通讯死锁问题
I2C接口是一种使用非常普遍的MCU与外部设备的接口方式,在STM32中也集成了I2C接口,我们也常常使用它来与外围的传感器等设备通讯。 最近在我们使用STM32F1VET6读取压力和温湿度传感器数据时,就是使用I2C接口来实现通讯的。但在使用I2C和STM32F1的标准库读取数据时出现了死机的现象。其现象是这样的,程序可以顺利的运行,但I2C没有数据返回。用示波器查看波形时,发现SCL的电平时钟为高,而SDA的电平时钟为低。如果拔掉对应的设备,SCL的波形则恢复正常。接上设备恢复正常,但运行一会现象依旧。 一开始以为是连接的设备有问题,于是换了一台设备,发现依旧如此。难道真的是I2C出现了死锁现象。那我们看看究竟怎么样的
[单片机]
STM32——TIM2定时器定时
STM32 中一共有11 个定时器,其中2 个高级控制定时器,4 个普通定时器和2 个基本定时器,以及2 个看门狗定时器和1 个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8 个定时器。关于这8 个定时器的简要说明,如图60 所示。其中TIM1 和TIM8 是能够产生3 对PWM 互补输出的高级定时器,常用于三相电机的驱动,时钟由APB2 的输出产生。TIM2-TIM5 是普通定时器,TIM6 和TIM7是基本定时器,其时钟由APB1 输出产生。由于STM32 的TIMER 功能比较复杂,所以只能一点一点的学习。因此今天就从最简单的开始学习起,也就是TIM2-T
[单片机]
基于STM32对DS1302的驱动
// 程序名: STM32驱动DS1302 //头文件 #include “stm32f10x.h” #include “usart.h” #define uchar unsigned char #define uint unsigned int ////DS1302引脚定义,可根据实际情况自行修改端口定义 #define RST PAout(5) #define IO PAout(6) #define SCK PAout(7) //DS1302地址定义 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_
[单片机]
STM32 SPI难点浅析
我用的是战舰STM32开发板,两个知识点,一:是STM32 SPI的原理;二:用STM32自带的SPI对外部flash(W25Q64)的读写。 一:STM32 SPI的原理 先上图: 主模式和从模式:主模式:主设备在SCK脚产生时钟;从模式:SCK引脚用来接收从主设备传来的时钟。 通常SPI通过4个引脚与外部器件相连: 1、MISO:主设备数据输入,从设备数据输出引脚。 2、MOSI:主设备数据输出,从设备数据输入引脚。 3、SCLK:串口时钟,由主设备输出,从设备输入。 4、NSS:从设备选择 这里必须牢记一点:从上图中可以看出,SPI通信是双向的,主机往从机里面写一个数据,他自己同时也能读到
[单片机]
STM32又添一虎将,一芯双核,性能飙升
自2007年意法半导体(ST)在北京发布首款STM32产品以来已有10年之久,在这 风雨十年里,STM32出货量高达30亿颗,成为中国第一大微控制器品牌。不止于此,随着IoT的应用趋势逐渐明显,对其中的MCU需求也日益增加。为此,在ST的战略中,最终目标是要打造一个宏伟的战略生态系统,成为产业领导者。 ST不断扩充着STM32系列,2019年7月,ST在北京召开新品发布会,推出了首款双核MCU——STM32H7。来自ST微控制事业部高级市场经理Renaud Bouzereau详细介绍了它的性能优势。 STM32H7采用Arm Cortex-M系列中性能最高的480MHz Cortex-M7内核,并增加一颗240
[嵌入式]
STM32之sprintf函数
单片机中Sprint函数: 说明1:使用该函数时必须包含stdio.h头文件,否则容易卡死程序 说明2:sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中(将数值转换成对应字符串形式,就是变换成ASCALL码),而printf函数打印输出到屏幕上。在单片机中将数值转换成字符串是sprintf函数最广的用途。 Sprint函数具体形式: int sprintf( char *buffer, const char *format, ); 解释:整形输出 sprintf(输出数组地址, 格式字符串 ,参量表……) 注:只要在printf中可以使用的格式化字符串,在sprintf都可以使
[单片机]
stm32固件库中GPIO的工作模式
固件库中GPIO的工作模式 总结一下可分为三种工作模式 输入模式、输出模式、复用模式 1、输入模式 1.1上拉输入:默认电平上拉 1.2下拉输入:默认电平下拉 1.3浮空输入:电平不确定完全由外部输入决定,多用于按键开关 1.4模拟输入:用于ADC采集(模数转换Analog-to-digital conversion) 在输入模式的时候,输出模式是被禁止的 2、输出模式 2.1推挽模式:双mos管轮流工作通过GPIOx_ODR可控制I/O输出高低电平 2.2开漏输出:只有N-MOS管工作PMOS管保持关闭,GPIOx_ODR可控制I/O输出高电平(N-MOS导通)和高阻态(N-MOS不导通);一般只用于IIC ,SMB
[单片机]