精华内容
下载资源
问答
  • 新手学stm32学f1还是f4,stm32初学者最好买哪种开发板?
    千次阅读
    2021-07-30 15:45:07

    现在学习单片机,各种教程、开发板只能用泛滥成灾来形容。

    不像我10年前自学的时候,没那么多选择,有配套视频教程的已经谢天谢地了。

    选择多未必是好事啊,我发现一个问题就是,教程越多,很多初学者反而学不会

    因为初学者本来对这个技能就不熟悉,连要学啥都不知道,更别说去选开发板和教程了。

    不同开发板配套的视频教程风格也是不一样的,有些对入门者友好,有些是针对有点基础的。

    如果选不对,一套教程或者开发板足以影响你的判断,让你觉得进入这个行业的门槛高,以为自己笨学不会,自信心挫败,心态崩了,毁了自己的前程。

    站在商家的角度,肯定是把自己的产品利润最大化。

    所以会把开发板有不同的配置,就像买车一样,有低配有高配,为得就能收割不同的消费群体(好像说的太直白了,哈哈)。

    以前我买了一块RK3288的开发板就是这样,看到他们压榨完整个芯片的功能以后的效果,看起来真的很牛逼,就是一台平板了。

    人都是这样的,看到这个开发板能实现这么牛逼的功能,一咬牙跺脚就买了。

    买来以后你会发现,自己的毅力根本无法支撑不到实现那些功能就放弃了。

    我当初就是这样,1000多块钱买的开发板用了不到几天就丢到一边吃灰了,后面用也用不到,放着也占地方,干脆丢垃圾桶了。

    最近也有小伙伴咨询我关于stm32开发板如何选择的问题,是选F1还是F4系列?

    这里给大家多普及一个知识,芯片的价格这块还是挺有意思的,有时候你会发现有些性能好的芯片反而比性能差的便宜,为什么会这样?

    其实这个跟芯片的市场需求量有关,量多大生产成本就越低。

    出于某些原因,今年芯片价格暴涨还缺货,STM32F103系列将近涨了10倍,而STM32L151系列基本没涨多少,通过这个可以看得出来它们的用量。

    所以,我的建议是先选择STM32F103系列,这个系列用得产品非常多。

    还有就是这个系列的学习难度比较适合新手,我们可以大概看下F1和F4的区别。

    F4从资源和性能都比F1系列的更丰富。

    F4系列的开发板一般比较适合已经从事开发工作的工程师,产品正好需要用到这个单片机,而自己又对这个单片机不熟的情况

    新手学习的时候一定要循环渐进的学习过程,就好比很多人看了51单片机说很简单,直接就开始干STM32,这逼装的给谁看?最后只会坑了自己。

    做技术写代码,看懂和会写完全是两码事,不信大家可以试试。

    有没有完全掌握,自己动手写一遍就知道了。

    我学技术是用比较笨的办法,稳扎稳打,先看后抄,再自己写,我经常和我的学员说,慢就是快

    等你基础打好了,其他单片机根本不用刻意去学,直接复制例程过来用就好了。

    当初我并没有系统地去学习STM32,之前一直用STC的单片机开发产品,改过一次nxp的产品程序。

    后面有一个产品用到stm32,就买了个开发板,也没看视频教程,直接拿例程一边改一边学。

    产品做出来,stm32也就学会了。

    很多人现在的情况是,之前没做过任何项目,就开始在stm32开发板上学习。

    熬了大半年,终于把外设都学会,但是一做项目就懵逼,没有思路,不知道代码如何去实现,然后又陷入迷茫焦虑状态。

    这就是学习的重心错了,学习单片机最好的方法是先系统学51单片机,然后做51的项目巩固。

    再通过项目去学习stm32,有项目驱动的情况下,你的学习更有目标性,效率也会更高,也更契合实际工作的开发模式。

    一个项目下来,你不但能学会stm32,还能提升自己编程水平和思维,还有了项目经验,一举四得。

    花同样的时间,你获得的价值更多,这也是为什么我们无际单片机编程以项目驱动去做培训。

    最好的教学方式,就是自己是怎么学会的,就怎么教,自己没做到没做过的就算了。

    最后来说一下,STM32的开发板要选哪家的。

    我第一次是买的火牛的,大家可能都没听过,印象中也是在8年前了。

    现在主流的就是野火和原子的,野火的视频我看过,更适合入门者,但是越往后估计初学者也会看得越懵逼,而原子的开发板质量据说比较好。

    尴尬的是,这两家的我都没买过,因为开发产品的时候很多都用STM32作为主控芯片,可以当开发板用就没买。

    至于买哪家,可以先看下他们配套的教程,哪个更适合自己。

    更多相关内容
  • STM32初学者高级篇.zip

    2021-10-08 21:05:22
    STM32初学者高级篇,为入门STM32最后一篇,学完中级和初级的可以试试高级篇,里面有SDIO,FATFS,LCD触摸和显示,MPS3,UsbDevice(模拟U盘),以太网,VGA,WIFI,摄像头,PWM,ModBus,LWIP,zigbee等例程和讲解。
  • 关于STM32初学者必知

    2020-07-19 03:21:31
    关于STM32初学者必知,希望对你的学习有所帮助。
  • STM32初学者初级篇.zip

    2021-10-08 20:45:19
    STM32系列例程和配套讲解有需要自取,后续还有中级和高级,里面有流水灯,滴答定时器,按键,工程模板等
  • STM32学习资料与初级篇相对应,和高级篇相连接,有需要可以下载;四种USART:DMA和中断方式各两种详细讲解,ADC(DMA),定时器,万年历,I^2C,万年历,SPI,CAN,温湿度,超声波,2.4G,重力感应等。
  • stm32初学者入门——循环交替点亮2个LED,适合初学者了解掌握stm32单片机的基本操作,内有注释,很详细,亲测有用!
  • Stm32初学者全攻略

    2014-04-16 22:55:33
    Stm32初学者全攻略
  • stm32初学者例程

    2011-08-10 10:04:25
    很好的东东,便于初学者学习,里面有很多最基本的例程
  • 基于STM32F103单片机进行各个管脚复用功能释意,便于初级工程师单片机入门设计,避免设计踩坑,并且帮助工程师把UART,I2C,SWD,ADC,PWM,SDIO等功能管脚进行汇总整理,不用再浪费时间找管脚。
  • stm32初学者全攻略

    2013-11-07 11:37:04
    stm32初学者全攻略,是对学习STM32的同学有很大的帮助!
  • STM32初学者必知

    2014-12-16 12:01:00
    STM32初学者必知   STM32初学者必知 STM32 STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量控制单元,...

    STM32初学者必知
     

    STM32初学者必知
    STM32
    STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量控制单元,调试系统以及标准的存储映射。
    嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以赋予每个中断源单独的优先级。利用NVIC从可以达到极快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态。这个后面我也会再总结。
    Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。
    Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。
    在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代码密度之间取得了平衡
    而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。
    STM32微控制器的推出标志着ST公司在两条产品主线(低价位主线和高性能主线)上迈出了重大一步。STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。
    乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。一般,STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CRC单元,支持8位字节和16位半字数据的CRC计算。在对SD或MMC等存储介质进行数据存取时相当有用。
    而且,STM32还包含了7个DMA通道。没恶搞通道都可以用来在设备与内存之间进行8位,16位,32位数据的传输。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。
    我们前面说过了,STM32是低功耗,高性能的微控制器。在低功耗方面,STM32表现也是不错的。它可以在2V供电的情况下运行,在所有设备同时打开且运行在满速72MHZ主频的情况下,也仅消耗36mA的电流,在与Cortex-M3内核的低功耗模式结合之后,只有2uA的电流消耗。即便外部振荡器处在待启动状态,STM32使用内部8MHZ的RC振荡器也可迅速退出低功耗模式。这种快速进出低功耗模式的特性,也进一步降低了微控制器整体的功率消耗,同时使微控制器仍然可以保持器件的整体高性能。
    在电子领域,对器件的要求精度高是一方面,另一方面,还要求器件稳定性要好,处于可靠性的考虑,STM32配备了一系列硬件来支持对可靠性的高度要求。这些硬件有:一个低电压检测器,一个时钟安全管理系统和两个看门狗定时器。时钟管理系统可以检测到外部主振荡器的失效,并随即安全的将STM32内部8MHZ的RC振荡器切换为主时钟源。两个看门狗定时器中的一个称为窗口看门狗。窗口看门狗必须在事先定义好的时间上下限到达之前刷新,如果过早或过晚的刷新它,将会触发窗口看门狗复位。第二个看门狗称为独立看门狗。独立看门狗使用外部振荡器驱动,该振荡器与主系统时钟是相互独立的,这样即便STM32的主系统时钟崩溃,独立看门狗也能“力挽狂澜”。
    在现代电子设计行业中,有一个问题是无法逃避的,那就是你不得不想方设法提高代码的安全性以防止被破解人员盗用。听师傅说,在极难得电子市场,复制一个芯片只需要几分钟。STM32可以锁住其内部Flash使破解人员无法通过调试端口读取其内容。当Flash的读保护功能开启后,其写保护功能也随之开启。写保护功能常用于防止一些来历不明的代码写入中断向量表。但是,写保护不仅可以保护中断向量表,还可以进一步将其保护范围延伸到整个Flash中的未被使用区域。另外,STM32还有一小块电池备份RAM区,这个RAM区域对应于一个入侵检测引脚应用,当这个引脚上产生电平变化时,STM32会认为遭遇了入侵事件,随即自动将电池备份RAM区的内容全部清除。 专业嵌入式、单片机技术实训。咨询QQ1187729241
    目前好多开发工具都开始支持Thumb-2指令集和STM32系列,即使不支持也没有关系,我们只需要将软件升级一下即可。同时,ST公司还提供了一个设备驱动固件库和一个USB开发应用库,以方便调用。对于STM32来说,一些早期微控制器比如早期的STR7和STR9发布的ANSI C库和源代码都是可移植的。这些程序的接口已经在许多流行的编译工具上得到了整合。相似的,许多开源的或者商用的RTOS,还有一些中间件(比如TCP/IP栈,文件系统)对以STM32系列微控制器来说也是可用的。
    Cortex-M3还带有一个全新调试系统CoreSight。用户可以使用标准的JTAG接口或者双线串行接口通过调试端口(Debug Access Port)实现和CoreSight系统的对接。除了提供调试运行控制服务之外,STM32上的CoreSight还提供断点数据查看功能以及一个指令跟踪器。指令跟踪器可以将用户选择的应用信息上传到调试工具里。从而可以为用户提供额外的调试信息,并且它在软件运行期间同样可以使用!
    更多交流请详情郭老师QQ1962426343   电话:15737137972

    转载于:https://my.oschina.net/u/866271/blog/356609

    展开全文
  • 该文档里提供了详细的ARM7——STM32的教程,里面对一个初学者来说,是个很好的学习和锻炼的机会。
  • stm32初学者必会操作----usart串口调试工具 今天笔者介绍stm32初学者必会的工具 usart的串口设备。 usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据。 下图就是笔者的蓝牙串口 下面来介绍串口...

    stm32初学者必会操作----usart串口调试工具

    今天笔者介绍stm32初学者必会的工具 usart的串口设备。
    usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据。
    下图就是笔者的蓝牙串口
    串口设备

    下面来介绍串口使用的步骤

    1. 首先是接线–笔者这里使用的是stm32f103rct6

    USART1_RXTXD
    USART1_TXRXD

    串口用到是USART1 —PA9 、 PA10;

    芯片与串口设备交错相连
    注意:串口正负极不要接反。

    PA8--

    2. 然后就是编码

    1.打开GPIOA 、USART1
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN;
    
    2.配置对应的GPIOA引脚,我们这里用的是PA9、PA10;

    这里4:浮空输入。 b:复位推挽输出

    GPIOA->CRH = (GPIOA->CRH & 0xfffff000) | 0x4b0;
    
    3. USART1配置
    USART1->BRR = SystemCoreClock / 115200;//此为波特率,要看您的串口设备
    USART1->CR1 = USART_CR1_TE | USART_CR1_UE | USART_CR1_RE;
    

    注意:如果是APB1ENR 的波特率要改为:SystemCoreClock/2/115200;

    4. 输出
    USART1->DR = '1';
    

    直接上代码

    下面展示一些 内联代码片

    #include <stdio.h>
    #include <stdlib.h>
    #include <stm32f10x.h>
    #include <string.h>
    
    int fputc(int ch, FILE *fp)
    {
    	if (ch == '\n')
    		fputc('\r', fp);
    	
    	USART1->DR = ch;
    	while ((USART1->SR & USART_SR_TXE) == 0);//等待发送完毕
    	return ch;
    }
    
    int main(void)
    {
    	RCC->APB2ENR |= RCC_APB2ENR_IOPAEN |  RCC_APB2ENR_USART1EN;
    	
    	GPIOA->CRH = (GPIOA->CRH & 0xfffff00f) | 0x4b0;
    	
    	USART1->BRR = SystemCoreClock / 115200;
    	USART1->CR1 = USART_CR1_TE | USART_CR1_UE| USART_CR1_RE;
    
    	while (1)
    	{
    		printf("hello world!\n");
    		for(int i = 0 ; i < 20000; i++);
    	}
    }
    
    

    在这里插入图片描述
    在这里插入图片描述
    注意:如果是蓝牙串口输出时一定要注意输出的速度,如果太快了 将会导致电脑蓝牙崩溃,笔者崩了好多次,相关经验在博客中写出了

    如果有什么问题尽管来博客私信: 点击.

    展开全文
  • STM32初学者入门常见误区(类比于51单片机)—入门点灯详细讲解 有51经验的朋友一定知道在51里面上电默认高电平,需要时一般把电平设置低就好了,写代码时只需要修改端口即可。 32呢?上电是默认的高阻态也就是在未...

    STM32初学者入门常见误区(类比于51单片机)—入门点灯详细讲解


          有51经验的朋友一定知道在51里面上电默认高电平,需要时一般把电平设置低就好了,写代码时只需要修改端口即可。
          32呢?上电是默认的高阻态也就是在未配置寄存器之前都是不确定的状态。而且在改代码时一定注意初始化的过程也需要修改端口,而且32更注重代码的可利用性,这样会使得代码更加看起来繁琐但是很条理,后续的可修改性大大提高。
    

    在这里插入图片描述
    首先这个很明显是主函数的内容,在此讲解一下“GPIOA,GPIO_PIN4”指的是PA4引脚,如果您需要修改灯的引脚,当然蜂鸣器什么的也是类似的,只需要修改main.c; led.c; led.h这三个头文件,其实也就是主函数和初始化函数以及相关头文件的修改即可。
    如下图GPIO_ResetBits()就是让括号里面的引脚输出为低电平 ,至于一个灯是高电平还是低电平亮这个取决于硬件配置,大家需要查看原理图去查看。当然GPIO_SetBits()就是输出高电平。这两个函数是库文件里面的内容大家通过go to difinition即可查找到。在这里插入图片描述
    如下图大家可以看到这个led.c 的文件里面的LED函数的初始化,首先定义了指针变量,第二使能PA,PD端口时钟,这个只是针对一般引脚,接下来就是对端口的一些配置当然这个IO口的速度还是推挽输出是灵活的 ,具体大家可以参考手册。
    然后就是关于这个一般引脚的问题,一般引脚和复用引脚是不一样的比如PC14.。。。其实大家也不需要记住有哪些,普通搞不定的时候加入以下两行代码即可: /重映射/
    // RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//AFIO时钟初始
    // GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//开启重映射=改变指定管脚的映射remap引脚重映射 GPIO_Remap_SWJ_JTAGDisable 这个的意思是JTAG_DP禁用+SW_DP使能
    在这里插入图片描述本人也受益于很多大佬的文章,才知道写一篇文章确实是不容易。希望大家点赞多多支持,其实也变现不了,就是看着粉丝多高兴。 以后还会给大家继续更新我在学习道路上的各种意想不到的困难和最后的解决办法,来纪念自己学习道路和帮助更多人少走弯路。私信我可能不能及时回复,大家可以加我微信zmq13546690432

    展开全文
  • STM32 初学者问题

    2021-02-02 01:42:19
    stm32f40_41xxx.s里面调用 8、stm32f4xx_conf.h //里面包含了我们需要使用的标准库,对于需要使用的库需要在其中加以说明include, //stm32f4xx.h里面可以看到对其include 9、stm32f4xx_it.c //...
  • 工程中包含LED、蜂鸣器BEEP、独立按键KEY、矩阵键盘KEY4X4、WiFi模块ESP8266、触摸按键TTP223、舵机SG90、四位数码管M7SEG、步进电机ULN2003、双电机L298N、12864显示屏OLED,源码非常适合刚入门的学习参考,部分...
  • STM32系列中m3内核中包含了一个简单的系统定时器Systick,计时方式采取向下计数,计数容量为24位。 关于Systick主要有四个32位寄存器: typedef struct { __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) ...
  • 文章总结了作者自己初学STM32单片机时遇到的三个需要注意的问题。
  • 初学stm32建议的---实用开发板推荐

    千次阅读 多人点赞 2021-07-22 09:35:36
    STM32编程作为一项实操性很强的技能,所以要多实操。初学的话,我觉得书籍就暂时先不买吧,先...教程对初学者比较友好。51转过来的,觉得自己基础不太好的朋友可以选这个教程,我以前入门也是看了原子哥的视频入的..
  • STM32初学者,外设先后学习顺序!

    千次阅读 2018-03-13 11:00:54
    因为平时工作时做的硬件工作偏多一些,在去年的2017年,主要做了硬件和射频方面的硬件研发工作,另外在产品量产跟线和生产支持上也花费了很多时间,以致把一直想掌握的STM32应用这一块给搁置了,还有掌握的C语言基础...
  • 这段时间开始野火的学习STM32f130指南开发板,入门篇看完,觉得相对于51单片机来说,stm32还是要难很多的,昨晚仔细看了一下stm32官方给的gpio例程,今天分享一下昨天的收获。 GPIO库函数相关的库函数如下: void ...
  • 关于STM32单片机本人在半年前就已初步接触并已经实现了一个以矩阵键盘为输入源的简易计算器小项目,但觉得先前学得过浅,于是这个假期重新从计算机原理及单片机原理开始学习,一个小阶段下来收获颇丰,经过复盘,...
  • stm32初学者是应该学寄存器好还是学库函数好?

    千次阅读 多人点赞 2018-04-07 22:07:41
    作者:jiwangbujiu链接:...我个人认为,在回答这个问题之前,你得先问清楚自己,我学习stm32、或者再往更深的地方走,我学习单片机,究竟是为了什么?你现在是处于什么状态?你是学生还是已经参加工作了?你的专...
  • 初学stm32-基础知识及经典案例

    千次阅读 2020-08-16 13:09:28
    1.stm32初学要买开发板还是最小系统板? 最小系统板优点:因最小系统板引脚全部引出,自己学习操作时自由度非常高,想测试哪个外设就连接哪个外设,比如:;led、蜂鸣器……,对于复杂外设tft lcd屏幕,mpu6050也...
  • 基于Keil5编译环境的STM32控制SG90舵机相关代码
  • STM32初学者KILE5软件的使用

    千次阅读 2019-04-19 11:24:31
    这里写自定义目录标题 今天看了很多博主的文章,安装了KILE5的软件,先详细说一下流程。 ... 主要遇到的原因是,KILE5安装完成之后,找不到自己的数据库,这里就得重新安装一下数据库。 数据库链接:...
  • 基于Keil5编译环境的STM32控制LD3320语音模块的相关代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,820
精华内容 2,328
关键字:

stm32初学者

友情链接: OpenSudoku.zip