# stm32学习 **Repository Path**: luo_jun99/stm32-learning ## Basic Information - **Project Name**: stm32学习 - **Description**: No description available - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-17 - **Last Updated**: 2025-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## stm32f10x 标准库下载 [下载地址](https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries/products.html) ## 使用 vs code 开发 keil 项目 额外添加 STM32F10X_MD 作为 definition ![配置definition](./imgs/config_definition_for_vs_code.jpg) ## Keil 添加对 c++ 的支持 ![添加编译器参数以支持c++语法](./imgs/add_cpp_compiler_parameter_to_keil.jpg) ## vs code 添加对 c++ 的支持 ![配置vscode支持c++编译](./imgs/add_cpp11_parameter_to_compiler_on_vs_code.jpg) ![记得保存配置](./imgs/save_config.jpg) ## 试图使用ARM_GCC 在linux上编译项目 > [参考](https://microdynamics.github.io/1.%20Breeze%20Mini%E5%9B%9B%E8%BD%B4%E9%A3%9E%E8%A1%8C%E5%99%A8/2.3%20STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA-Makefile%E8%AF%A6%E8%A7%A3%28ARM-GCC%29/) > > [Makefile 学习参考](https://seisman.github.io/how-to-write-makefile/introduction.html) ### 0、安装gcc编译器 > [旧版本编译器下载地址](https://developer.arm.com/downloads/-/gnu-rm) > > [新版arm-gnu-toolchain下载页面](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) > ![](./imgs/config_gcc_compiler.png) ### 1、使用gcc平台下的startup启动文件替换 arm compiler v5 的startup文件 > [STM32Cube_FW_F1_V1.8.0下载地址](https://www.st.com/en/embedded-software/stm32cubef1.html?dl=1p1PNK5wL2GLhH7%2FUl4Ypg%3D%3D%2C7inIW1mS1B3zb4kYTX5s56Xe8GRquulfOWYNqJPaoHbmXyR7I31phafagsQiPzeyY62kX8c0lUgBYQmByVrs4XvkidfedP8nhwU4I%2FYDiBZW%2B3lEOg9pAxDYM4sVqj1OKYifJstGR7UJJfwS0U%2B6UlIIxZm%2FTYUTMH9VynrP0tQ7QsHkafeeHifNte4Av5%2F%2FYXgDYIHz2ly7vS5WN6aARhE%2FadQZYR%2FfnAO3OznSyoTE0FFjZ7JE1kgBD9aj9a2qvEwINli5sKAkkgl9hxCY1nQccHzk0CEaej%2FPs%2BS7avrE%2BNhxIPwzEXu4NN83SR%2BquSs0t8EeTCm7Je0R1zl%2BWA%3D%3D&mkt_tok=ODU2LVBWUC03MTUAAAGQZte0KyIirFUzUKnQhnpW8xdENFZoSR8Ey3AdqeTYCq2CUx9qGmrsifqZfgFKg8kjIrM_6_YXOSKqFBXahyxogQJmZHalaiQ5IL9zdGkEEQ) > 注意在使用了GCC平台下的 startup 文件之后,要在工程中删除/排除 arm compiler v5平台的 startup 文件 启动文件位于`STM32Cube_FW_F1_V1.8.0/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc`目录下 ### 2、配置GCC支持c++代码的编译 ![](./imgs/enable_supporting_cpp_on_gcc.png) ### 3、配置链接器支持对c++对象文件的编译 ![](./imgs/enable_supporting_cpp_on_linker.png) ### 4、配置 Keil 模拟,并使用逻辑分析仪查看端口电平 1. 检查芯片型号 ![](./imgs/check_chip_model.png) 2. 在数据库中查看芯片模拟对应的参数配置 ![](./imgs/check_chip_model_debugger_parameters.png) 3. 配置模拟器参数 ![](./imgs/config_simulator_parameters.png) 4. 启动模拟器 ![](./imgs/starting_simulator.png) 5. 查看GPIO的电平状态 > 重点看这里寄存器的名字 ![](./imgs/check_gpio_out_put_status.png) 6. 配置逻辑分析仪 ![](./imgs/config_logic_analyzer.png) 7. 添加逻辑信号 > 这里寄存器的名字就是上一步在 gpio 中显示的 寄存器的名字 ![](./imgs/add_logic_signal.png) 8. 逻辑信号显示为模拟值 ![](./imgs/signal_exception.png) 9. 切换信号为bit显示 ![](./imgs/config_signal_to_bit_display_type.png)