端午归来,阖家安康,开始学习STM32,要入门,当然还是blink,要blink要有板子,要有开发环境
好多小伙伴羡慕有电池,据说走不了航空,不知真假,正好可以用来测试LED,似乎都是红色的,下边就是开发环境,竟然发现电脑里似乎有
天宇说“stm 需要Keil mdk”
应该是有的,想起来了,原来是以前买的一个屏幕驱动带的,NEWBUY-TFT,牛掰TFT?
败家啊,一直没有学习
http://pan.baidu.com/s/1pJ3eEiJ
大概有1G+呢,还是压缩包,感觉现在要学的东西太多了,力不从心啊
从PDF看起吧:STM32神舟I号用户手册从入门到精通2013.9.30.pdf
找到了blink的素材,就不用外接LED了

寄存器版blink
#define __IO volatile
typedef unsigned int uint32_t;
typedef __IO uint32_t vu32;
typedef unsigned short int uint16_t;
#define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */
#define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */
#define GPIO_Pin_2 ((uint16_t)0x0004) /*!< Pin 2 selected */
#define GPIO_Pin_3 ((uint16_t)0x0008) /*!< Pin 3 selected */
#define GPIO_Pin_4 ((uint16_t)0x0010) /*!< Pin 4 selected */
#define GPIO_Pin_5 ((uint16_t)0x0020) /*!< Pin 5 selected */
#define GPIO_Pin_6 ((uint16_t)0x0040) /*!< Pin 6 selected */
#define GPIO_Pin_7 ((uint16_t)0x0080) /*!< Pin 7 selected */
#define GPIO_Pin_8 ((uint16_t)0x0100) /*!< Pin 8 selected */
#define GPIO_Pin_9 ((uint16_t)0x0200) /*!< Pin 9 selected */
#define GPIO_Pin_10 ((uint16_t)0x0400) /*!< Pin 10 selected */
#define GPIO_Pin_11 ((uint16_t)0x0800) /*!< Pin 11 selected */
#define GPIO_Pin_12 ((uint16_t)0x1000) /*!< Pin 12 selected */
#define GPIO_Pin_13 ((uint16_t)0x2000) /*!< Pin 13 selected */
#define GPIO_Pin_14 ((uint16_t)0x4000) /*!< Pin 14 selected */
#define GPIO_Pin_15 ((uint16_t)0x8000) /*!< Pin 15 selected */
#define GPIO_Pin_All ((uint16_t)0xFFFF) /*!< All pins selected */
#define RCC_APB2Periph_AFIO ((uint32_t)0x00000001)
#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020)
/************ GPIOB <*************/
typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;
typedef struct
{
__IO uint32_t CR;
__IO uint32_t CFGR;
__IO uint32_t CIR;
__IO uint32_t APB2RSTR;
__IO uint32_t APB1RSTR;
__IO uint32_t AHBENR;
__IO uint32_t APB2ENR;
__IO uint32_t APB1ENR;
__IO uint32_t BDCR;
__IO uint32_t CSR;
} RCC_TypeDef;
/********* GPIOB管脚的内存对应地址 *******/
#define PERIPH_BASE ((uint32_t)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0c00)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
/************ RCC时钟 <*************/
#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)
#define RCC_BASE (AHBPERIPH_BASE + 0x1000)
#define RCC ((RCC_TypeDef *) RCC_BASE)
/************ www.armjishu.com *******/
void Delay(vu32 nCount);
int main(void) //main是程序入口
{
/* 使能APB2总线的时钟,对GPIO的端口B时钟使能 */
RCC->APB2ENR |= RCC_APB2Periph_GPIOB;
/*-- GPIO Mode Configuration速度,输入或输出 -----------------------*/
/*-- GPIO CRL Configuration 设置IO端口低8位的模式(输入还是输出)---*/
/*-- GPIO CRH Configuration 设置IO端口高8位的模式(输入还是输出)---*/
GPIOB->CRL &= 0xFFFFF0FF;
GPIOB->CRL |= 0x00000300;
while (1)
{
GPIOB->BRR = GPIO_Pin_2;
Delay(0x2FFFFF);
GPIOB->BSRR = GPIO_Pin_2;
Delay(0x2FFFFF);
}
}
void Delay(vu32 nCount) //通过不断for循环nCount次,达到延时的目的口
{
for(; nCount != 0; nCount--);
}
看得头大,看来还是得用库
/******************** (C) COPYRIGHT 2013 STMicroelectronics ********************
* File Name : main.c
* Author : WWW.ARMJISHU.COM之STM32核心团队 JESSE
* Version : V2.0.1
* Date : 01/09/2013
* Description : STM32神舟I号开发板 广州
*******************************************************************************/
#include "stm32f10x.h"
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure; /* 配置神舟I号LED灯使用的GPIO管脚模式*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*使能LED灯使用的GPIO时钟*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure); /*神舟I号使用的LED灯相关的GPIO口初始化*/
while (1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_2); /* 熄灭LED指示灯 */
Delay(0x2FFFFF);
GPIO_ResetBits(GPIOA,GPIO_Pin_2); /* 点亮LED指示灯 */
Delay(0x2FFFFF);
}
}
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |