今日学习任务 | 今天上午主要讲的基本理论知识,安装环境,下午主要用寄存器点亮一个灯,自己写固件库的模板,然后自己用固件库点亮一个灯。
|
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
| 今日任务已按计划完成。在老师的指导下 完成了用寄存器点亮一个灯,搭建固件库的模板。 |
今日开发中遇到的问题汇总 | 编程时一段结束需要空一行,不然编译会出错; 利用寄存器控制LED需要startup启动文件; |
今日未解决问题 | 无 |
今日开发收获 | 1. 32— 32bit的意思,表示这是一个32bit的微控制器 2.最小系统由电源,晶振,下载,BOOT,复位组成 3.普通的原件要接地GPIO 4.固件库具备一定的规范性,对所有的外设都有涉及 ,操作的是最底层的设备; GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I)
|
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) | 规范地完成了任务,但基础不行,需要更多的联系 |
其他 | 无 |
#include "stm32f4xx.h"
int main(void)
{
RCC_AHB1ENR |=(1<<2);
GPIOC_MODER &=~(3<<2);
GPIOC_MODER |= (1<<2);
GPIOC_OTYPER &= ~(1<<1);
GPIOC_OSPEEDR &=~(3<<2);
GPIOC_OSPEEDR |= (2<<2);
GPIOC_ODR |=(1<<1);
}
void SystemInit(void)
{
}
#ifndef _STM32F4XX_H
#define _STM32F4XX_H
#define PERIPH_BASE (0x40000000)
#define AHB1PERIPH_BASE (PERIPH_BASE+20000)//»ùµØÖ·¼ÓÆ«ÒÆÁ¿
#define RCC_BASE (AHB1PERIPH_BASE+0x3800)
#define RCC_AHB1ENR *(unsigned int *)(RCC_BASE +0x30)
#define GPIOC (AHB1PERIPH_BASE+0x800)
#define GPIOC_MODER *(unsigned int *)(GPIOC+0x00)
#define GPIOC_OTYPER *(unsigned int *)(GPIOC+0x04)
#define GPIOC_OSPEEDR *(unsigned int *)(GPIOC+0x08)
#define GPIOC_PUPDR *(unsigned int *)(GPIOC+0x0c)
#define GPIOC_ODR *(unsigned int *)(GPIOC+0x14)
#endif