IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32f10--- 学习日志2021-07-10 -> 正文阅读

[嵌入式]stm32f10--- 学习日志2021-07-10

不知道标题是啥-_-|||,学到什么记录什么

寄存器占四个字节

偏移地址:0x04? ? ? ?

基地址:0x4001 1000叫做GPIOC的基地址?

APB2外设时钟使能寄存器 0x4002 1018? 单片机认为它只是一个数值,所以需要转换成单片机能识别的地址? ? 我们需要做的是改变地址里面的值
* (unsigned int*)
? 0x4002 1018? ? //这样单片机就可以识别这个地址了,前面一个红色星号是为了把里面的值取出来

2、配置输出,确定输出模式

先把对应控制位清零,再根据需要设置!

* (unsigned int*)? 0x40011004 &=~(0x0f<<(20));//清零

* (unsigned int*)? 0x4002 1018 |=(1<<20);//根据需要设置

~ 取反

3、输出低电平

? ? ?*(unsigned int*)0x40021018 |=(1<<4);
?? ??*(unsigned int*)0x40011004 &=~(0x0F)<<(4*5);
?? ? *(unsigned int*)0x40011004 |=(1<<(4*5));
?? ? *(unsigned int*)0x4001100C &=~(1<<13);//输出低电平,点亮
?? ? *(unsigned int*)0x4001100C |=(1<<13);//输出高电平,熄灭

4.点亮led灯

int main()
 {
   *(unsigned int*)0x40021018 |=(1<<4);
	  *(unsigned int*)0x40011004 &=~(0x0F)<<(4*5);
	 *(unsigned int*)0x40011004 |=(1<<(4*5));
	 *(unsigned int*)0x4001100C &=~(1<<13);
	 
	 //*(unsigned int*)0x4001100C |=(1<<13);//熄灭
	 while(1);
 }	 
 void SystemInit(void)
 {
	 
 }

点亮LED中? --寄存器

?

?

*(unsigned int*)0x40021018 |=(1<<4);

#define? RCC_APB2ENR? ( *(unsigned int*)0x40021018)

RCC_APB2ENR? |=(1<<4);
?

?

?

#define RCC_APB2ENR  *(unsigned int*)0x40021018
#define GPIOC_CRH    *(unsigned int*)0x40011004
#define GPIOC_ODR    *(unsigned int*)0x4001100C
int main()
 {
   RCC_APB2ENR |=(1<<4);
	  GPIOC_CRH &=~(0x0F)<<(4*5);
	 GPIOC_CRH |=(1<<(4*5));
	 GPIOC_ODR &=~(1<<13);
	 
	 //*(unsigned int*)0x4001100C |=(1<<13);
	 while(1);
 }	 
 void SystemInit(void)
 {
	 
 }

头文件的概念

#include<stm32f10x.h> : <>代表keil自带的头文件,只要写上就能自动寻找相应的文件夹加载

#include"stm32f10x.h"? ?:? "? ?"代表自定义的头文件,使用的时候要指明路径

基地址命名

总线 一根粗的线

外设 一根根细的线? ? 挂在总线上

总线名称 APB1? ? ?APB2? ? ? AHB

总线基地址? ?0x4000 0000? ? 0x4001 0000? ? 0x4001 8000

#define PERIPH_BASE? ? ?0x4000 0000 //总线基地址? ?PERIPH——外设? ?BASE——基地址 ?

总线表示

#define APB1PERIPH_BASE? ?PERIPH_BASE(+偏移量)

#define APB2PERIPH_BASE? ?(PERIPH_BASE+0x00010000)

#define AHBPERIPH_BASE? ? ?(PERIPH_BASE+0x00020000)? //18000? ? 20000? 好计算

接下来? ?

? ? ? ?目的:点亮led

GPIOC的基地址也出来了

高寄存器GPIOC_CRH 有四位偏移量? ?(GPIOC_BASE+0x04)? 将其转换为单片机所认识的地址? *(unsigned int*)(GPIOC_BASE+0x04)//*取地址内的内容

打开pc13对应的时钟

#define RCC_BASE? ?(AHBPERIPH_BASE+0x1000)

#define RCC_APB2ENR? ? *(unsigned int*)(RCC_BASE+0x18)

#include"stm32f10x.h"
 
int main()
 {
  // RCC_APB2ENR |=(1<<4);
       
RCC_APB2ENR |= 1<<4;
	 GPIOC_CRH &=~(0x0F)<<(4*5);
	 GPIOC_CRH |=(1<<(4*5));
	 GPIOC_ODR &=~(1<<13);
	 
	 //*(unsigned int*)0x4001100C |=(1<<13);
	 while(1);
 }	 
 void SystemInit(void)
 {
	 
 }
#define PERIPH_BASE   ((unsigned int)0x40000000)
	
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
/* AHB×ü???ùμ??·*/
#define AHBPERIPH_BASE ? ?(PERIPH_BASE + 0x20000)

/*GPIOCíaéè?ùμ??·*/
#define GPIOC_BASE  (APB2PERIPH_BASE + 0X1000)

/*GPIOC??′??÷μ??·*/
#define GPIOC_CRL   *(unsigned int*)(GPIOC_BASE+0x00)
#define GPIOC_CRH   *(unsigned int*)(GPIOC_BASE+0x04)
#define GPIOC_IDR   *(unsigned int*)(GPIOC_BASE+0x08)
#define GPIOC_ODR   *(unsigned int*)(GPIOC_BASE+0x0C)
	
/*RCCíaéè?ùμ??·*/
#define RCC_BASE  (AHBPERIPH_BASE + 0x1000)

/*RCCμ?AHB2μ?ê±?óê1?ü??′??÷μ??·*/
#define RCC_APB2ENR  *(unsigned int*)(RCC_BASE+0x18)

//#define RCC_APB2ENR  *(unsigned int*)0x40021018
//#define GPIOC_CRH    *(unsigned int*)0x40011004
//#define GPIOC_ODR    *(unsigned int*)0x4001100C
	

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:46:50  更:2021-07-11 16:46:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 21:41:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码