STM32学习踩坑:解决编译错误与管脚配置要点
需积分: 50 78 浏览量
更新于2024-09-13
收藏 75KB DOC 举报
"STM32学习过程中的注意事项和常见问题"
STM32是基于ARM Cortex-M内核的微控制器系列,广泛应用于嵌入式系统设计。在学习STM32的过程中,有几个关键点需要特别注意:
1. **总线系统**:
- AHB (Advanced High-performance Bus) 总线主要负责外部存储器接口的时钟,例如SDRAM或Flash等高速外设。
- APB1 (Advanced Peripheral Bus 1) 总线则管理低速外设,如DA转换器、USB、SPI、I2C、CAN以及串行口2、3、4、5和普通定时器。
2. **开发环境**:
- 使用Keil uVision4作为开发工具时,可能会遇到编译错误,例如"More than one section matches selector-cannot all be FIRST/LAST"。这通常是由于工程配置问题导致的。解决方法是在涉及的汇编源文件(带有三个红点的文件)上右键点击,选择“Options for File '***'”,取消选中“Include in Target Build”和“Always Build”的灰色选项,然后重新编译即可。
3. **引脚功能**:
- 引脚类型包括S(电源)、I(输入)、O(输出)和I/O(输入输出)等,FT表示5V兼容。
- VDD、VSS分别代表单片机的3.3V电源正负极,VDDA和VSSA对应A/D转换器的电源正负极,VREF+和VREF-则是A/D转换的参考电压正负极。
4. **电源管理**:
- 即使不使用STM32F103系列的内置A/D转换器,也需要确保VDDA和VSSA的供电,因为HSI(高速内部RC振荡器)由它们供电,否则单片机可能无法正常启动。
- 在某些开发板上,如EC30-EKSTM32,VDDA和VSSA可能通过电感与VDD和VSS相连,若外部有VDDA、VSSA处理电路,需移除这些电感。
5. **A/D转换**:
- STM32F103有2个12位A/D转换器(ADC1和ADC2),共16个A/D转换通道。在EC30-EKSTM32中,仅使用ADC1。
- 这些通道分布在PA0至PA7,PB0、PB1以及PC0至PC5管脚上,可配置为模拟输入(AIWx)。
6. **中断和NVIC**:
- 设置NVIC(Nested Vector Interrupt Controller)优先级分组是实现中断管理的关键,它允许用户自定义中断优先级,优化系统的响应时间和资源利用率。
在学习STM32时,了解这些细节并结合实际项目练习,有助于深入理解其工作原理和应用。同时,遇到问题时,查阅资料和在线社区的解决方案是解决问题的有效途径。
2020-08-04 上传
2021-10-03 上传
2022-09-15 上传
2020-05-31 上传
2023-06-09 上传
2023-05-26 上传
勤睿
- 粉丝: 47
- 资源: 5
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析