【转载请注明出处:http://blog.csdn.net/leytton/article/details/37740913


学习资料

视频教程 
李想stm32视频教程49集 http://pan.baidu.com/s/1kTyt03P
原子教你玩STM32 http://pan.baidu.com/s/1gd25r6F 
刘洋STM32(好)   http://pan.baidu.com/s/1mgkeNsG
 http://www.iqiyi.com/u/1005856393  http://yun.baidu.com/share/home?uk=2853967793 http://www.zxkjmcu.com/
参考文档
STM32的函数说明(中文).pdf    http://download.csdn.net/detail/leytton/7630851
STM32库函数LED灯示例源码.zip http://download.csdn.net/detail/leytton/7630863
STM32F10x微控制器参考手册(2009年12月第10版).pdf  http://download.csdn.net/detail/leytton/7668435 

开发板资料

普中科技单片机开发板EM3_V30原理图.pdf      http://download.csdn.net/detail/leytton/7732219

普中科技单片机开发板STM32电路图(原理图).pdf  http://download.csdn.net/detail/leytton/7732229

STM32程序下载接线图

注意:
1、 如果不能自动下载程序,可以用手动复位的方法下载程序,按钮的操作方法:按下 RSK
按钮不放用另外手指按下 ISPK,然后,先松开 RSTK 再松开 ISPK 按钮。完成后,点击
下载软件的"下载"按钮即可完成程序下载。
2、 下载完成后要断开短路帽 BOTT1 有些程序才能正常运行

3、下载完成后程序没有运行,可按ARM上的RSTK键试试(Leytton:无意中发现的)

小技巧:库函数编程时编译比较慢,ReBuild会编译整个工程里的所有文件;如果只是修改了一个文件,再次编译就直接点Build(F7),只编译当前文件,速度就很快了。

GPIO口对应的引脚

主要函数源码讲解

/*******************************************************************************
*
* 软件功能:  GPIO闪灯实验(软件延时方式)
*
*******************************************************************************/
#include "stm32f10x.h"
#include <stdio.h>
#include "delay.h"/*************************************************
函数: void RCC_Configuration(void)
功能: 复位和时钟控制 配置
参数: 无
返回: 无
**************************************************/
void RCC_Configuration(void)
{ErrorStatus HSEStartUpStatus;                    //定义外部高速晶体启动状态枚举变量RCC_DeInit();                                    //复位RCC外部设备寄存器到默认值RCC_HSEConfig(RCC_HSE_ON);                       //打开外部高速晶振HSEStartUpStatus = RCC_WaitForHSEStartUp();      //等待外部高速时钟准备好if(HSEStartUpStatus == SUCCESS)                  //外部高速时钟已经准别好{FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的用法.位置:RCC初始化子函数里面,时钟起振之后FLASH_SetLatency(FLASH_Latency_2);                    //flash操作的延时RCC_HCLKConfig(RCC_SYSCLK_Div1);               //配置AHB(HCLK)时钟等于==SYSCLKRCC_PCLK2Config(RCC_HCLK_Div1);                //配置APB2(PCLK2)钟==AHB时钟RCC_PCLK1Config(RCC_HCLK_Div2);                //配置APB1(PCLK1)钟==AHB1/2时钟RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);  //配置PLL时钟 == 外部高速晶体时钟 * 9 = 72MHzRCC_PLLCmd(ENABLE);                                   //使能PLL时钟while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)    //等待PLL时钟就绪{}RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);            //配置系统时钟 = PLL时钟while(RCC_GetSYSCLKSource() != 0x08)                  //检查PLL时钟是否作为系统时钟{}}RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);  //允许GPIOB、AFIO时钟
}/*************************************************
函数: void GPIO_Configuration(void)
功能: GPIO配置
参数: 无
返回: 无
**************************************************/
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;        //定义GPIO初始化结构体/* Configure PE.0,PE.1,PE.2,PE.3,PE.4,PE.5,PE.6,PE.7 as Output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0  ;  //选中待设置的 GPIO 管脚,使用操作符“|”可以一次选中多个管脚GPIO_Pin_0-15 GPIO_Pin_All全部GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //GPIO_Speed 用以设置选中管脚的速率GPIO_Speed
//GPIO_Speed_10MHz  最高输出速率 10MHz;  PIO_Speed_2MHz   最高输出速率 2MHz;   GPIO_Speed_50MHz  最高输出速率 50MHzGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO_Mode 用以设置选中管脚的工作状态
/*GPIO_Mode_AIN  模拟输入  GPIO_Mode_IN_FLOATING  浮空输入
GPIO_Mode_IPD   下拉输入  GPIO_Mode_IPU   上拉输入
GPIO_Mode_Out_OD  开漏输出  GPIO_Mode_Out_PP  推挽输出
GPIO_Mode_AF_OD  复用开漏输出 GPIO_Mode_AF_PP 复用推挽输出*/GPIO_Init(GPIOB, &GPIO_InitStructure);
}/*************************************************
函数: int main(void)
功能: main主函数
参数: 无
返回: 无
**************************************************/
int main(void)
{RCC_Configuration();GPIO_Configuration();delay_init(72);while(1){GPIO_SetBits(GPIOB,GPIO_Pin_0);    //设置指定的数据端口位delay_ms(500);GPIO_ResetBits(GPIOB,GPIO_Pin_0); //清除指定的数据端口位delay_ms(500);}
}

转载于:https://www.cnblogs.com/leytton/p/8253384.html

STM32单片机(1) 总记 学习资料+参考手册+LED灯相关推荐

  1. SQL SERVER深入学习学习资料参考

    SQL SERVER深入学习学习资料参考 1.微软Webcast<sql server 2000完结篇>. 尽管微软Webcast出了很多关于Sql Server的系列课程,但是最为深入讲 ...

  2. 学习资料参考:从深度学习到自然语言处理

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共6058个字,10张图,预计阅读时间:16分钟. 注意:本文已经更新,新版结合深度学习简介和发展 ...

  3. 【STM32学习笔记-点亮LED灯】

    STM32学习笔记-点亮LED灯 文章目录 STM32学习笔记-点亮LED灯 一.原理图分析 二.代码分析 1.mian函数 2.led.c函数 3.led.h函数 4.函数文件整理 5.LED_In ...

  4. 【0基础快速入门】Python学习快速参考手册

    Python学习快速参考手册 目录 文章目录 Python学习快速参考手册 目录 @[toc] 下载 Python下载与配置 IDE下载与配置 第一章 · Python的基本语法 变量 数据类型 注释 ...

  5. java gpio_单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  6. 学习用树莓派驱动LED灯闪烁

    学习用树莓派驱动LED灯闪烁 [前沿] ·认识GPIO编码 ·准备实验材料 ·实验电路连接 ·编写驱动程序 ·讲解其它的驱动方式(扩展篇) [实际操作] 一.认识GPIO编码 学习如何用树莓派驱动LE ...

  7. 单片机两个IO口控制三个LED灯

    在项目中经常会遇到单片机IO口资源不够用的情况,那么如何让单片机的IO口利用最大化呢,这里分享一下用单片机两个IO口控制三个LED灯的几种方法. 方法一:      S1和S2分别接单片机两个IO口, ...

  8. 嵌入式开发学习之--点亮LED灯(中)

    上篇我们主要学习的是环境搭建和实际操作,这篇详细记录一下整个思考的过程. 首先,我们需要想一个问题,这个灯为什么会亮? 物理上来说,LED灯属于发光二极管,只要有正确的电压就会发亮.也就是说,我们烧写 ...

  9. 51单片机+ESP8266+Android APP实现局域网内控制LED灯

    一.硬件设计 1.硬件选型 主控芯片:选用STC15W104.这款MCU比较小巧,控制3个LED灯的亮灭只需要3个IO即可,不足之处是没有串口,与ESP8266通信只能使用模拟串口,买了挺多的,先将就 ...

最新文章

  1. 虚拟串口工具_com0com
  2. 跟vczh看实例学编译原理——一:Tinymoe的设计哲学
  3. 解决System.Web.Script.Serialization导入失败
  4. VMware多虚拟机网络配置
  5. WebGL(四)—— 第一个WEBGL程序
  6. Python打印杨辉三角形 RUNOOB python练习题61
  7. golang python rpc_golang rpc的两种调用方法
  8. linux下的shell脚本,linux下shell脚本的学习
  9. 动态创建form传参
  10. Pytorch CUDA GPU运算模型训练缓慢的一个可能原因
  11. c 获取char*的长度_C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏!...
  12. 【JY】ABAQUS混凝土CDP插件分享
  13. 暴雪与网易宣布停止合作,多家厂商争夺暴雪代理权
  14. 小游戏开发指南及过程中的难点问题
  15. RegularJS 0.2.12 发布,JavaScript MVC 框架
  16. 达梦8 DCA认证笔记
  17. 普通石粉的用途_“石粉”的多种用途
  18. 增肌粉和蛋白粉的区别
  19. 【ES6】es6新特性
  20. Vision Transformer 综述

热门文章

  1. 软件工程学习笔记(二)软件项目管理
  2. neovim图标显示乱码,utf8字体显示乱码(Windows10和Centos安装nerd-fonts)
  3. php fflush失败,php fflush 函数_PHP教程
  4. Slam14讲——直接法
  5. Jquery中AJAX参数详细列表
  6. 如何找到土蜂蜜销售渠道?
  7. 你要知道的测试面试题
  8. 计算几何及其应用——计算几何基础
  9. caffe 绘制acceracy曲线 IndexError: list index out of range的解决方案
  10. 【CSRF漏洞-01】跨站请求伪造漏洞靶场实战