STM32F103C8T6芯片烧录程序问题

使用该开发板过程中,用USB接口通过XCOM软件烧进去一直没反应,跳冒动了、重置也没用。最后用得J-LINK在KEIL中LOAD烧就烧进去了。但是USB还不能拔掉。

感觉是USB给开发板供电,然后用J-LINK才能烧进去。之前用stm32f103c8t6最小开发板就没有这个问题。

### STM32F103C8T6通过DAP接口进行程序烧录的方法 为了使用DAP接口为STM32F103C8T6烧录程序,可以通过以下方法完成: #### 开发工具准备 需要安装MDK-ARM和STM32CubeMX作为主要开发环境。这些工具用于生成初始化代码并配置硬件参数[^1]。 #### DAPLink固件制作 对于自制DAPLink设备的支持,可以从开源项目获取相关资源。具体来说,可以参考GitCode上的`f045d`项目地址,该项目提供了基于STM32F103C8T6的DAPLink实现方案[^2]。此项目的源码来自ARM官方,并针对低资源MCU进行了优化。 #### CMSIS-DAP协议支持 由于STM32F103C8T6内存较小,在实现完整的USB MSD(Mass Storage Device)功能方面存在困难,因此通常不会采用标准的DAPLink U盘模式。然而,仍然能够利用CMSIS-DAP v1.1.0版本的核心功能来实现调试与编程操作[^3]。 #### 实际烧录过程 如果遇到无法识别U盘的情况,则可以选择其他方式加载HEX文件到目标板上。例如,借助串口工具手动发送数据包至微控制器内部存储区即可完成整个写入流程[^4]。以下是具体的Python脚本实例展示如何自动化这一环节: ```python import serial def send_hex_over_serial(port, baudrate, hex_file_path): ser = serial.Serial(port, baudrate) with open(hex_file_path, 'r') as file: lines = file.readlines() for line in lines: stripped_line = line.strip() # Remove any whitespace or newline characters. byte_data = bytes.fromhex(stripped_line) # Convert hexadecimal string to raw binary data. ser.write(byte_data) send_hex_over_serial('/dev/ttyUSB0', 9600, './example.hex') ``` 上述代码片段展示了怎样经由UART端口传送十六进制镜像给目标器件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

新海诚学QT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值