尝试使用CubeMX做stm32开发之九:SYS配置

        参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置。

一、配置参数

Debug:

        stm32f103支持两种调试接口:串行接口;JTAG接口。

        JTAG调试接口(JTAG-DP)需要5个引脚;SW调试接口(SW-DP)需要2个引脚。二者之间有复用引脚。CubeMX中可选择5pin或4pin的JTAG,5pin比4pin多了一个复位引脚。

        SW调试端口采用同步串行协议:SWCLK引脚为从主机到从机的时钟信号;SWDIO为双向数据信号。

        考虑性价比,在采用48pin这种引脚较少的芯片时,采用SW作为调试端口的方案显然性价比更高。

System Wake-Up:

        设置低功耗模式下的自动唤醒功能,通过引脚PA0(这里被ADC_CH0占用了)。

Timebase Source:

        一般指HAL的时基,即HAL库中的uwTick,用于实现HAL_Delay()以及作为各种timeout时钟的基准。一般情况下直接选择默认的Sys Tick(嘀嗒定时器)来维护SYS Timebase Source即可,

### STM32CubeMX配置 JLink 下载的方法 #### 工具准备 为了实现通过 JLink 对 STM32 的调试和下载,需要完成以下几个步骤。首先确保已经正确安装了 STM32CubeMX 和 Keil MDK 开发环境,并且已安装最新版本的 JLink 驱动程序。 --- #### 步骤说明 1. **安装 JLink 驱动** - 如果目标硬件未配备 USB 接口用于固件烧录,而仅提供了 SWD(Serial Wire Debug)接口,则需使用 JLink 仿真器。 - 安装 JLink 驱动时,默认按照官方提供的安装向导操作即可[^1]。安装完成后,连接 JLink 到 PC 并确认设备管理器中能够正常识别该设备。 2. **创建并生成工程文件** - 使用 STM32CubeMX 创建一个新的项目,选择对应的 MCU 型号。 - 在 `Pinout & Configuration` 页面完成必要的外设配置,例如 GPIO、UART 等。 - 在 `Project` -> `Generate Code` 中指定 IDE 类型为 `Keil MDK-ARM V5`,并命名工程路径与名称[^1]。 3. **修改 Keil 工程中的调试设置** - 打开由 STM32CubeMX 自动生成的 Keil 工程。 - 进入菜单栏 `Debug` -> `Settings...`,弹出对话框后切换至 `Use` 标签页。 - 将选项更改为 `J-LINK/J-TRACE Debugger`。 - 点击右侧按钮加载相应的 JLink 配置文件或手动调整参数以匹配实际使用的硬件型号。 - 返回主界面保存所有更改后的设置。 4. **验证连接状态** - 编译当前工程无误之后尝试执行一次全量下载动作 (`Rebuild All`) 来测试整个流程是否通畅。 - 若一切顺利的话应该可以观察到底层串行协议握手成功以及目标板上的 LED 指示灯闪烁现象表明程序已被正确写入闪存区段内[^1]。 5. **注意事项** - 确认供电方式:部分开发套件可能允许从主机端获取电力供应;但也存在某些特殊场景下必须额外接入独立电源适配器才能保障稳定运行效果最佳。 - 检查接线情况:务必仔细核对接头针脚定义避免因错误连线而导致短路损坏器件风险增加。 ```python # 示例 Python 脚本展示如何调用 pyOCD 库模拟简单的调试过程 (可选扩展学习内容) import pyocd def debug_with_jlink(target_device='stm32f407vg'): session = pyocd.session.Session.get_session_for_target( target_type=target_device, config_file=None, # 默认配置文件 no_config=False, # 不禁用全局配置 pack=None # 自定义 PACK 文件支持 ) try: board = session.board print(f"Connected to {board.unique_id}") core = board.target.cores[0] core.halt() print("Core halted.") pc_value = core.read_core_register('pc') print(f"Program Counter value: {hex(pc_value)}") finally: session.close() if __name__ == "__main__": debug_with_jlink() ``` --- ### 总结 以上即是在 STM32CubeMX 中配合 JLink 实现代码上传的具体指导方案。遵循这些指示可以帮助开发者快速建立起基于 ARM Cortex-M 架构微控制器的应用框架结构体系架构设计思路清晰明了易于维护升级迭代周期缩短效率提升显著。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forster-C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值