zoukankan      html  css  js  c++  java
  • 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(下)     串口

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

      

            

        

        

      

      

      

  • 相关阅读:
    问题:Controller中Response的用法
    C#中字符串前缀@和$
    C#中Viewbag和ViewData的区别
    C#中Session和Cache的区别
    try catch捕获异常
    C#开发中,添加错误日志功能,并自定义错误页面
    数据库索引中,聚集索引和非聚集索引有何区别?
    String和StringBuilder的区别?
    C#函数,引用类型作为值参数,改变参数值后,形参也会改变.重新给实参赋值后,形参则不会改变.
    jQuery操作radio选中和取值
  • 原文地址:https://www.cnblogs.com/pxshin/p/2684876.html
Copyright © 2011-2022 走看看