赞
踩
根据项目需求,梳理需要用到的功能,
电量检测:ADC
按键:IO input+外部中断
LED:IO output
温度检测:ADC
电机控制:IO output
打印通讯:SPI
打印时序:IO input&output
蓝牙:UART连接透传模组
日志:UART
最终得出需要的外设和功能:UART、SPI、ADC、IO、中断、定时器、RTOS
外设部分一共需要27个IO,其中特殊外设包括两个ADC,一个SPI,两个UART,一个用于蓝牙通讯,一个用于日志打印。
最终选择 STM32F103C8T6
描述:CPU内核:ARM Cortex-M3 CPU最大主频:72MHz 工作电压范围:2V~3.6V 程序存储容量:128KB 程序存储器类型:FLASH RAM总容量:20KB GPIO端口数量:37 ST 32位 ARM内核 MCU芯片
手册与设计资料:www.st.com
打开芯片手册,然后找到pin definitions页面,这里主要查看一些特殊功能的引脚,例如adc、uart、spi用的是哪些io,确定下来后,把其它的通用IO也逐一确定即可,这些通用的IO后续绘制原理图时,还可以调整。
手册与设计资料:www.st.com
打开芯片手册,然后找到pin definitions页面,这里主要查看一些特殊功能的引脚,例如adc、uart、spi用的是哪些io,确定下来后,把其它的通用IO也逐一确定即可,这些通用的IO后续绘制原理图时,还可以调整。
https://www.st.com/zh/development-tools/stm32cubemx.html
File->New Project->stm32f103cb
因为我们高速时钟想使用外部8MHz的晶振,当然了,也可以使用内部时钟,对精度要求不高的话,低速时钟就不需要的,因为我们用不到RTC功能。
设置时钟为72MHz,外部晶振8MHz
后续可以使用Jlink SWD进行烧录仿真
到这里,你就可以选择对应功能的引脚了,例如ADC SPI UART分别是芯片的哪个引脚,记录下来
然后剩余的常规IO,就可以比较随意,大部分引脚都是可以复用的,直接在右边的芯片上点击选择即可,对应IO设置为输出输入,这一步可以打开示例工程参考哦!!
绘制完外设后,我们看下STM32的最小系统如何绘制
电源
外部时钟
运行模式
烧录仿真接口
由于STM32是没有蓝牙功能的,而我们需要和手机进行通讯,这里我们使用了蓝牙透传模组,通过串口与STM32进行数据透传。
蓝牙部分我们使用串口2进行数据交互,所以需要重写串口2的处理函数
我们使用的蓝牙模组是RF Crazy/智汉的模组,主要是立创上购买方便,大家也可以根据自己需要选择其它模组。
模组的连接非常简单,只需要提供电源和地,然后串口连接STM32的串口即可通讯。
有了芯片和外设,那芯片如何控制外设或者读取外设状态呢?这里就需要把芯片IO和外设连接起来了。只需要用标签连接起来即可。
准备好PCB、元器件、电烙铁、焊锡、镊子、万用表。
打开BOM表或者PCB工程,然后从电源模块开始,找到要焊接的元器件型号,逐个模块焊接,切记不要一下子焊完所有模块,否则很难定位排查问题。
每个模块焊接完成后,对照原理图、PCB工程,用万用表先检查下有没有焊接错误、短路、虚焊等情况,一个焊点一个焊点确认,确认没问题后在焊接下一个模块。
一般的焊接流程是:
充电管理模块
开关
电源指示灯
稳压3.3V (先焊接模块11,才能使用开关打开电源到稳压3.3V)
CH340
打印头相关
STM32芯片
升压模块
焊接完成后,切记不要马上上电,先目测、用万用表检测下,有没有焊接错的地方,特别是要检查各路电源有没有短路,确保没有短路后,上电第一时间也要观察下有没有异常,有异常迅速拔掉电源。
目测没有异常后,先检测下所有的电源电压是否正常,在确定所有电源电压正常后,就可以接到电脑,烧录程序啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。