STM32学习踩坑:解决编译错误与管脚配置要点

需积分: 50 20 下载量 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时,了解这些细节并结合实际项目练习,有助于深入理解其工作原理和应用。同时,遇到问题时,查阅资料和在线社区的解决方案是解决问题的有效途径。