制板过程:碳粉打印、热转印、蚀刻、焊接(stm32f103c6t6a)
stm32f103-LQFP48-mini_board-make-doc/1、激光打印机打印出的正反面(碳粉+树脂).jpg
stm32f103-LQFP48-mini_board-make-doc/2、热转印碳粉正反面到双面覆铜板.txt
stm32f103-LQFP48-mini_board-make-doc/3、蚀刻好.jpg
stm32f103-LQFP48-mini_board-make-doc/4、焊接好元件.jpg
stm32f103-LQFP48-mini_board-make-doc/5、SWD写入的LED闪烁程序正运行.jpg
stm32f103-LQFP48-mini_board-make-doc/6、BUG晶振任意一侧对地电压约1V(未启振)、自动切换到内部RC振荡.txt
stm32开发板
TODO 可以参考 自制51开发板 的 “1.2 自己做的 89c52rc最小开发板电路图(带编程)”
STM32F103 串口下载程序 步骤:
1. 从串口下载并启动
1.1. 设置 从系统存储器启动, 串口下载: BOOT0: 1, BOOT1: 0
1.2. MCUISP.exe :
- 不使用RTS和DTR,
- 勾选"编程后执行",
- 再点击 “开始编程” ,
右边窗口显示"开始连接…" 即MCUISP.EXE进入等待.
1.3. 按复位键,
- 按复位键后,单片机将按 步骤1.1 的设定 来启动, 并开始和 步骤1.2 的等待中的MCUISP.exe交互
即从串口下载程序到系统存储器 并从系统存储器启动 (相当于从串口启动).
2. 此后如何再次运行 步骤1 写入的程序?
1.4步骤或2.1步骤. 注意此时(步骤1之后)程序已经被下载到FLASH, 但是设置依然是 从串口启动.
所以如果此时直接按复位键,是不会正常启动的,因为还需要MCUISP.exe按照 步骤1.2 那样配合才行.
步骤1.3 之后 如果期望运行刚刚下载到单片的程序,则步骤应该是:
- 改设置为: BOOT0:1、 BOOT1:任意值 :即从FLASH启动,
- 按复位键, 即是启动刚刚写好的程序的.
BOOT0, BOOT1 参见下图红框:
stm32f103zet6 : stm32cubeIde 下的helloworld
通过 ch340烧写程序到开发板
stm32flash -w ./Release/STM32F103ZET6_demo02.hex -v -g 0x0 /dev/ttyUSB0
记录
1. 转为.hex
Project -> Properties -> C/C++ Build: Settings -> Tools Settings : MCU Post build outputs: “Convert to Intel Hex file (-O ihex)”
参考1
参考2
2. 安装 stm32flash : 用于烧写程序
linux下的stm32flash 等价于 win10下的mcuisp.exe
#ubuntu 23.04下 安装 stm32flash:
sudo apt-get install -y stm32flash
3. ch340 驱动
ch340 : 将串口转化为usb口
ubuntu 23.04 自身已经有ch340驱动, 但是 stm32f103ze的 ch340的usb口 插入 ubuntu 23.04 的 笔记本PC的usb口, 经历了发现 ttyUSB 又被另一个软件改为 usb键盘,
跟着dmsge输出
sudo dmesg -w
ch340 usb口 插入 到 pc usb口,dmseg输出如下:
[17438.359289] usb 1-2: USB disconnect, device number 10
[17440.267710] usb 1-2: new full-speed USB device number 11 using xhci_hcd
[17440.417027] usb 1-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[17440.417036] usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[17440.417040] usb 1-2: Product: USB Serial
[17440.419454] ch341 1-2:1.0: ch341-uart converter detected
[17440.420460] usb 1-2: ch341-uart converter now attached to ttyUSB0
这一段显然是发现了ch341 并认为是ttyUSB 这很好
可是紧接着又 把ttyUSB删除了 改为 brltty 的 Keyboard?
[17440.999504] input: BRLTTY 6.5 Linux Screen Driver Keyboard as /devices/virtual/input/input25
[17441.124392] usb 1-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[17441.124854] ch341-uart ttyUSB0: ch341-uart converter now disc