STM32-跑马灯实验代码分析
来源:互联网 发布:js 解码ccitt.t6 编辑:程序博客网 时间:2024/05/22 10:57
工程建立的主要步骤
1.新建3个文件夹:USER、SYSTEM、HARDWARE
2.新建led.c、led.h和test.c
3.在Target目录树上右击Manage Component,新建USER、SYSTEM、HARDWARE,并添加相关C文件(具体见前文MDK使用方法与技巧),跟前面一样HARDWARE组添加led.c文件。
4.在Options for Target ‘Target 1’对话框C/C++选项卡中Include Pathes里添加头文件路径。(这个不可少,否则编译出错,见前文MDK使用方法与技巧,led.h文件不可漏掉)
5.使用SWD方式下载,具体见MDK使用方法与技巧,注意reset and run选项,如果不选此项,程序下载后还要重启,然后才运行。
6.使用mcuisp通过串口下载程序搞了半天没下进去,原来是因为我把mcuisp左下角的电平设置错了,应该是DTR低电平复位,RTS高电平进BootLoader,真是粗心。
代码分析
led.c
#include <stm32f10x_lib.h>#include "led.h"//硬件电路两个LED灯对应PA8和PD2,初始化PA8和PD2为输出口,并使能这两个口的时钟void LED_Init(void){RCC->APB2ENR|=1<<2; //使能POARTA时钟RCC->APB2ENR|=1<<5; //使能POARTD时钟GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH|=0X00000003; //PA8推挽输出GPIOA->ODR=1<<8; //PA8输出高GPIOD->CRH&=0XFFFFF0FF;GPIOD->CRH|=0X00000300; //PD2推挽输出GPIOD->ODR=1<<2; //PD2输出高}
注意:1.RCC是MDK定义的一个结构体,里面包含RCC相关寄存器组
2.在配置STM32外设时,任何时候都要先使能该外设的时钟!APB2ENR是APB2总线上的外设时钟使能寄存器。
led.h
#ifndef __LED_H#define __LED_H #include "sys.h"//LED端口定义#define LED0 PAout(8)// PA8#define LED1 PDout(2)// PD2void LED_Init(void);//初始化 #endif可以右击找到PAout(x)的定义,在sys.h中。
test.c
#include <stm32f10x_lib.h>#include "sys.h"#include "usart.h"#include "delay.h"#include "led.h" int main(void){ Stm32_Clock_Init(9); //系统时钟设置delay_init(72); //延时初始化LED_Init(); //初始化与LED连接的硬件接口while(1){LED0=0;LED1=1;delay_ms(300);LED0=1;LED1=0;delay_ms(300);} }
- STM32-跑马灯实验代码分析
- Stm32跑马灯实验
- 【stm32学习笔记之一】跑马灯实验(基于库函数)
- 跟我学STM32107RC--- STM32中的跑马灯实验总结
- STM32跑马灯
- 跑马灯实验
- STM32F407 跑马灯实验
- stm32103RC--跑马灯实验
- 【实验一】跑马灯实验
- STM32跑马灯例程总结
- LED跑马灯实验笔记
- mini2440 LED 跑马灯实验
- 1.5.第四个实验--跑马灯
- 跑马灯实验-寄存器版
- 跑马灯实验-库函数版
- 跑马灯实验-库函数版
- 跑马灯实验-寄存器版
- Javascript--跑马灯代码
- jquery,html动态生成select标签出问题
- POJ 1724 ROADS (优先队列+BFS)
- js加强2
- javacript加强1
- Java类中的static方法和static变
- STM32-跑马灯实验代码分析
- javascript加强2
- pro 文件的一些书写规则
- 关于编程与人生的片言只语
- javascript加强3
- pomelo源码分析(三)
- javascript加强4
- x86保护模式下GDT表
- 准备从事编程职业的大学生应该学些什么?