stm32f407zgt6引脚图 如何自学stm32

小圈 2024-03-13 206次阅读

本文目录

  1. 如何自学stm32
  2. stm32上拉电阻的工作原理
  3. stm32f407的i2c引脚可以通用吗
  4. c语言的程序怎么烧进stm32里
  5. stm32死机的原因有哪些
  6. STM32的引脚是不能随便分配的么

如何自学stm32

STM32单片机的性价比和功能很丰富的,应用广泛,学好STM32对就业很有帮助,前景很不错。给初学者提出几点建议。

入手一块适合的开发板

学习单片机就是要学习单片机外设电路的设计、单片机程序的编写以及电子产品开发的流程。而开发板是一个不错的选择,将常用的外设电路都集成到开发板上,方便了学习,厂家还会提供相应的例程和学习资料,省去了自己找资料的过程。

学习硬件电路的设计

拿到开发板首先研究一下硬件电路,对每一个功能模块的外设电路分析一下,在分析的过程中要理解器件的使用,控制方式,如果你做方案会用哪些元器件来实现这个功能。在学习之处可以看的不用太深,但是一定要知道控制原理,后面编程要知道。

学习C语言程序的设计

在初学阶段,要读懂厂家提供的例程,学习单片机的寄存器是什么,学习寄存器是如何工作,如何配置的,要读懂例程是如何通过程序控制硬件的,比如和输出高电平点亮/熄灭LED,如何实现IIC通讯等。程序的实现方式因人而异,所以要抛开例程,自己去编程。

学习产品的设计流程

学习是途径,会做做产品才是最终目的。要懂得如何提出需求,把需求转化成技术方案,要考虑如何选型,如何控制成本,如何提高产品的稳定性等。所以要多多的参与项目、参与产品的研发。

最后必须要说的是,学习单片机一定不要整天抱着书看,而是要多动手。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

stm32上拉电阻的工作原理

上啦电阻和下拉电阻的用处在于通讯协议规定脉冲波形的要求。也就是说对方需要什么形式的脉冲,如正脉冲可以使用下啦电阻形成,需要负脉冲可以使用上啦电阻形成。

当把输出控制器关闭,就可以作为接收信号引脚,引脚正反两个方向都是连接了齐纳二极管,作为吸收高于5V的信号电压的保护环节。

stm32f407的i2c引脚可以通用吗

STM32F103有的功能407都有,并且这些功能的引脚完全兼容,只是程序不同而已。。。而STM32F407有的功能103不一定有,因为407强大些。。。。。。

希望对你有用普通IO都一样,407有更多的附加功能。

值得注意的是,407的电源引脚与103的有很大的区别,一定要注意!

不能。407支持摄像头,I2S等引脚,103都没有

c语言的程序怎么烧进stm32里

STM32是可编程器件,用C语言和汇编都可以,由于C语言可读性强、移植方便,现在用C语言编程成为主流,C语言编号的hex需要下载到单片机中,单片机才能执行,这个过程叫做程序的烧录或者下载,需要专用工具的支持。对STM32而言,有三种方法可以烧录程序,分别介绍。

1.使用JTAG接口烧录程序(用JLINK实现)

JTAG是一种标准的程序烧写接口,许多比较高端的芯片都支持该接口,该接口有10针,14针,20针等,但是用到的引脚有六个,分别为:TCK,TMS,TDI,TDO等,另外两根线是TRST和RESET。接口如下所示。

对于STM32而言,上图中的几个上拉电阻可以省略不用,STM32在手册上已经描述了单片机对应的引脚内部有上拉电阻,这种方式可以通过JLINK来实现烧写。该方式可以实现在线调试,提高了查找问题的效率。

2.SWD

烧录方式

SWD方式主要用到两根线:SWDIO和SWCLK,该接口一般和JTAG接口共用,接口电路如下所示:

这种烧录方式可以通过JLINK、STLINK等工具实现。该方式可以实现在线调试,大大方便了查找问题的效率,而且节省单片机引脚,接口小,节省PCB空间。

3.ISP

模式/UART模式

STM32单片机可以通过UART串口引脚下载程序,这种方式使用的是单片机的串口,即TXD和RXD两根线,所使用的工具是USB/TTL,如下图是实现自动ISP下载的电路图。

上图看起来复杂,其实USB/TTL芯片不用画在电路板上,使用额外的工具即可,在连接的时候要使用交叉连接,而且还要选择单片机的启动方式,即BOOT0和BOOT1的状态。该方式下载程序虽然方便,但是无法实现在线调试。与前两种方式相比,该种方式比较适合量产。

通过以上三种方式即可实现将C语言程序烧写进STM32里,从而让单片机执行程序代码。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

stm32死机的原因有哪些

stm32出现死机情况分硬件引起的和软件引起的,但是有时很难区分是硬件问题还是软件问题。我在其他同学回答的问题基础上再补充几点。

一、硬件问题

1、硬件引起死机一般都是被干扰引起的。驱动的外设有高压大功率电磁阀:这种情况引起的时间有两种情况,一种是设计电路时没有做抗干扰处理,比如没有使用光耦隔离、没有使用RC吸收电路,还有一种情况是将电池阀的电缆和低压电缆捆绑到一根线速导致干扰耦合。如果电路中有AC220V电磁阀建议做抗干扰处理。分辨的方法就是经常出现阀门动作后出现死机。

2、EMC干扰引起死机:工业产品都有EMC等级要求的,即使没有也建议新产品样机出来后做EMC测试,在样机阶段解决这类问题。

3、通信电路引入干扰:有些新手设计电路时单片机io出来就是RS485接口芯片,一般RS485通信线走的距离比较远,半路很容易引入各种干扰信号。

二、软件问题

1、串口异常中断:STM32的串口中断打开后有一个串口异常中断是默认打开的,串口如果出现异常导致异常中断,如果程序中没有处理,就会导致程序会一直进入串口中断,看上去和死机一样。我当时遇见这个问题在设备旁边蹲守了一周才解决。

2、IIC异常死机:早期的stm32芯片IIC接口有缺陷,使用硬件IIC都会导致死机,基本都是模拟IIC,这个问题比较容易发现。

3、数组越界:STM32程序有个特点,只要出现数组越界,就会进入系统异常中断,一般这个中断函数都是空的,所以出现数据越界就会死机。使用数组时最好做好防范措施。

4、堆栈溢出:同样堆栈溢出也会进入系统异常中断函数,写程序时尽量避免函数调用超过5层。

以上是我的经验总结,很多都是亲身经历,痛苦的经历。不过大部分产品是可以使用看门狗复位死机的,我就比较痛苦,之前做的产品如果不做处理出现复位、死机等情况都是不允许的,郁闷了很久才解决。希望我的回答能给大家带来帮助,大家不要再跳我跳过的坑。

STM32的引脚是不能随便分配的么

你这个程序,有问题的,没有开启引脚的外部时钟。每个GPIOA/B/C引脚都是有时钟的。

1.先开启引脚外部时钟,才能调用引脚,初始化如下(库函数)

2、然后才可以拉高拉低电平



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。