Stm32 学习笔记

前言

  为什么要学习stm32?于我,一为是因为它处理速度更快,神舟一号开发板貌似是72Mhz的晶振,如果还是12分频的话,那比传统的51的12Mhz要快6倍差不多,可以满足更多的功能,比如摄像头,SD卡,触摸屏等;二是它有个官方的库,开发起来也比较方便,对C的应用锻炼也更多;三是他可以跑ucosII系统,可以先了解一下操作系统;四是stm32的成本也是10来块钱,以后的应用也会越来越多。

  这次学习用的板子是神舟一号,处理器是stm32f103RB(72Mhz 128KROM 20KRAM) ,没有JLINK的仿真器,只能用串口来烧写程序。手册看的是配套的《STM32神舟I号从入门到精通》和野火的《零死角玩转stm32》,感觉野火的好一点,但是实验室有块神舟一号的板,就先用这块学学吧,库用的是最新的3.5.0。

2012——09——10  开发环境的搭建

  1.stm32的驱动--PL-2303HX驱动

  2.烧写软件--mcuisp

  3.编译器--MDK414

2012——09——14     点亮第一个灯

  1.下载ST的库代码--STM32F10x_StdPeriph_Lib_V3.5.0

  2.新建工程并一步步配置

  3.初始stm32库

  4.点亮第一个灯 //熟悉开发流程

    主线:要控制灯的电平变低,需要控制GPIO(General-purpose I/O)端口,就要控制GPIO相关的寄存器。

    附:CPIO的寄存器有以下功能:①输入输出 ②保存GPIO的输入电平或将要输出的电平 ③设置某引脚为0/1,控制输出的电平 ④锁定引脚  

    注意:一组GPIO对应16个引脚,而寄存器是32位的。

    STEP1:端口配置高寄存器(GPIOx_CRH)// 通过这一步的设置,可以将某个引脚的功能设置出来。

    一组GPIO对应16个引脚,而寄存器是32位的。每一个引脚用到四位,高两位为CNF[1:0],配置的是引脚的功能(上拉下拉,推挽开漏);低两位为MODE[1:0].配置的是引脚为不同的最大输出速率,或为输入模式。      

    STEP2:端口位设置/清除寄存器(GPIOx_BSRR)

    高十六位为BRy,为1时清除使引脚置低,第十六位为BSy,为1时使引脚置高。

2012——09——15 系统滴答计时器

2012——09——17 Key(Polling)

2012——09——18 KEY(EXTI)

    

2012——10——13(上)     模板分析及修改应用

  时隔一个月,继续学习stm32,上个月不说了。继续充电。

  上次熟悉了stm32的开发环境,接下来就是在这个平台上进行我们的操作了。

  1.打开模板,可以看到有5个文件夹。我们要用的只是User这个文件夹。

  2.文件添加及修改

  一般使用库函数,在野火中的条理性是比较好的,主函数是比较短的,实现的功能一目了然。其中要实现的功能一般放在另外设定的函数中,在main函数前用#include "led.h"包含进来就行了。//奇怪的是这样main函数没有把函数led.c包含进来,可能和led.h绑定了吧。

  这样我们大概就知道我们以后看一个工程,要重点要看的和改的是哪些地方了:主要是main函数(废话)及他包含的其他头文件,和conf没注释掉的地方。也就是模板多出来的地方。

  看了一下之前改过的几个工程,发现自己添加的函数都有一个是void XXX_GPIO_Config(void),在这里也就我们要改的很重要的地方了,因为很多时候GPIO口的功能和位置是不一样的。而且这些函数在main函数前是要初始化的。

  

2012——10——13(下)     串口

  串口外设主要由三个部分组成:波特率的控制,收发控制部分,数据存储转移部分。

  

        

    

    

  

  

  

原文地址:https://www.cnblogs.com/pxshin/p/2684876.html