板子终于到手,开始使用L051测试,当然得使用STM32CubeMX工具, 如果完全没有使用过STM32CubeMX和一定的基础知识,本文章并不适合观看,主要在于把自己的过程记录,如果后期发现有值得补充和修改的地方,再来修改。
新建工程,选择对应芯片,然后设置下相应的引脚(需要根据自己的原理图): 1、 LED灯设置为输出,按钮设置为输入; 2、然后RCC晶振: Disable(禁用) BYPASS Clock Source(旁路时钟源) Crystal/Ceramic Resonator(晶体/陶瓷晶振) 有外部晶振选择 Crystal/Ceramic Resonator 3、在SYS中选择 SWD烧录模式 Debug Serial Wire 4、定时器设置: 查阅资料STM32L051C8T6有5个定时器 通用定时器(TIM2、TIM21、TIM22、),基本定时器(TIM6),低功耗定时器(LPTIM1)。 因为用不到低功耗定时器,主要还是不确定低功耗定时器是否和普通定时器一样用,本次目的主要还是想先测试出效果,所以选用通用定时器,其中Clock Source 选择为 internal Clock ;打开对应定时器中断,在NVIC Settings 里面Enabled 打勾。 5、时钟设置: 在设置定时器参数之前,需要先确定系统的时钟,在这里我们第一次测试,用不到低功耗,所以将系统时钟设置为32MHZ最大值,如下图: 时钟设置好以后,就可以设置定时器里面的ARR和PSC(具体的计算方式属于基础知识,这里先不详细说明) 其中使用TIM2,TIM21 2个通用定时器,TIM2设置成为1S,作为普通逻辑的定时器,TIM21设置为1ms 作为按钮的定时器; 6、串口设置: 使用串口1(USART1)作为调试串口(PA9 PA10),选择Asynchronous (异步通讯模式),打开串口中断,设置好自己需要的波特率,串口1设置完成。 还需要使用另外一个串口与无线模块通讯,PCB图纸上使用的是(PB10 PB11),这两个端口在STM32F103上是正常的串口3,但是在STM32L051上是LPUART1,是一个低功耗串口,这里并不需要用到它的低功耗功能,就直接和普通串口一样设置,把他当做一个普通串口使用(此时我并不知道能不能类似普通串口一样直接使用,后面测试会证实一下)。
板子上还有2个I2C设备,但是基于STM32硬件I2C一直以来被吐槽的问题,不准备使用,还是计划用IO口模拟I2C,这歌测试留在下面一篇文章再写,以上设置,可以把基本的功能测试使用起来。
|