stm32最小系统焊接调试总结
stm32最小系统打板后,接下来开始焊接元器件,焊接元器件可以参考立创EDA焊接辅助工具。
图1 焊接辅助助手
焊接准备工具有,焊台,放大镜,元器件,镊子,焊锡膏,锡丝及万用表等。调节焊台温度到350-400摄氏度。焊接顺序是先焊接USB typec接口,5V电源,ldo,ch340,stm32芯片,旁路电容,晶振,复位电路,下载电路,扩展IO排针。焊接过程中先把附近元器件上锡,再依次焊接,边焊接边用万用表测试是否联通,是否有短路等现象,一个一个器件依次焊接测试并修改直至最后焊接完成。
图2 焊接板子
焊接完成后进入调试阶段,连接串口转USB进行串口下载测试,打开程序下载助手,按住复位按键boot0-3.3v,再上电,芯片进入下载模式,助手读取芯片信息,看是否成功,波特率9600. 读取成功,下载程序测试,点灯测试,配置GPIO引脚,编写循环点灯测试程序。测试芯片能否正常工作。
void LED_Init_gpioc(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //¶¨ÒåÒ»¸öÒý½Å³õʼ»¯µÄ½á¹¹Ìå
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //ʹÄÜGPIOAʱÖÓ£¬GPIOA¹ÒÔØÔÚAPB2ʱÖÓÏ£¬ÔÚSTM32ÖÐʹÓÃIO¿ÚÇ°¶¼ÒªÊ¹ÄܶÔӦʱÖÓ
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; //Òý½Å4
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //Òý½ÅÊäÈëÊä³öģʽΪÍÆÍìÊä³öģʽ
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //Òý½ÅÊä³öËÙ¶ÈΪ50MHZ
GPIO_Init(GPIOC, &GPIO_InitStructure); //¸ù¾ÝÉÏÃæÉèÖúõÄGPIO_InitStructure²ÎÊý£¬³õʼ»¯Òý½ÅGPIOA_PIN4
GPIO_SetBits(GPIOC, GPIO_Pin_13); //³õʼ»¯ÉèÖÃÒý½ÅGPIOA4Ϊ¸ßµçƽ
}
#include "stm32f10x_gpio.h"
#include "led.h"
#include "delay.h"
#include "sys.h"
int main(void)
{
//LED_Init(); //µ÷Óóõʼ»¯LEDº¯Êý£¬ÒýÓÃ"led.h"ºó¿ÉʹÓÃ
LED_Init_gpioc();
delay_init(); //µ÷Óóõʼ»¯ÑÓ³Ùº¯Êý£¬ÒýÓÃ"delay.h"ºó¿ÉʹÓÃ
while(1)
{
GPIO_SetBits(GPIOC, GPIO_Pin_13); //GPIOA_PIN4Êä³ö¸ßµçƽ£¬LEDµÆϨÃð£¬ÒýÓÃ"stm32f10x_gpio.h"ºó¿ÉʹÓÃ
//PAout(4)=1; //ÒýÓÃsys.hÍ·Îļþºó£¬¿ÉÒÔÖ±½ÓʹÓøú궨Òå²Ù×÷IO(GPIOA_PIN4)Êä³ö¸ßµçƽ
delay_ms(100); //ÑÓ³Ù1Ã룬ÒýÓÃ"delay.h"ºó¿ÉʹÓÃ
GPIO_ResetBits(GPIOC, GPIO_Pin_13); //ÉèÖÃA4Òý½ÅΪµÍµçƽ£¬µãÁÁ£¬ÒýÓÃ"stm32f10x.h"ºó¿ÉʹÓÃ
//PAout(4)=0; //ÒýÓÃsys.hÍ·Îļþºó£¬¿ÉÒÔÖ±½ÓʹÓøú궨Òå²Ù×÷IO(GPIOA_PIN4)Êä³öµÍµçƽ
delay_ms(100); //ÑÓ³Ù1Ã룬ÒýÓÃ"delay.h"ºó¿ÉʹÓÃ
}
}
图3 下载测试程序
图4 下载测试
图5 点灯测试
下载测试后,可以看到最小系统正常工作,说明焊接功能没问题,另外需要注意的是KT-R0603封装的led灯是有正负的,带颜色一端为负,可以用万用表的二极管档测试led是否能点亮。
如果焊接有问题,或只有局部功能能用,可以参考对照原理图,调试局部功能。
图6 原理图
图7 pcb