Presentation is loading. Please wait.

Presentation is loading. Please wait.

《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:

Similar presentations


Presentation on theme: "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"— Presentation transcript:

1 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话: ddddd ALIENTEK 淘宝店铺: 技术论坛:

2 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 C语言复习+寄存器地址名称映射分析 适用平台 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) ddddd 淘宝店铺: 技术论坛:

3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
目录 C语言复习 1 MDK中寄存器地址名称映射分析 2 淘宝店铺: 技术论坛:

4 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
GPIO基本结构 参考资料: 探索者STM32F4开发板: 《STM32F4开发指南-库函数版本》 4.1小节C语言基础知识复习 4.6小节 MDK中寄存器地址名称映射 STM32F4xx官方资料: 《STM32F4xx中文参考手册》-第7章通用IO 淘宝店铺: 技术论坛:

5 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
位操作 define宏定义关键词 ifdef条件编译 extern变量申明 typedef类型别名 结构体 static关键字 淘宝店铺: 技术论坛:

6 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
位操作:6种位操作运算符 运算符 含义 & 按位与 ~ 取反 | 按位或 << 左移 ^ 按位异或 >> 右移 GPIOA->ODR|=1<<5; TIMx->SR = (uint16_t)~TIM_FLAG; 淘宝店铺: 技术论坛:

7 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
define宏定义关键词 define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。 常见的格式: #define 标识符 字符串 “标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。 例如: #define SYSCLK_FREQ_72MHz 定义标识符SYSCLK_FREQ_72MHz的值为 。 淘宝店铺: 技术论坛:

8 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ifdef条件编译 单片机程序开发过程中,经常会遇到一种情况,当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 例如: #ifdef STM32F10X_HD 大容量芯片需要的一些变量定义 #end 淘宝店铺: 技术论坛:

9 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
extern变量申明 C语言中extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 这里面要注意,对于extern申明变量可以多次,但定义只有一次。 淘宝店铺: 技术论坛:

10 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
extern变量申明 main.c文件 test.c文件 u8 id;//定义只允许一次 main() { id=1; printf("d%",id);//id=1 test(); printf("d%",id);//id=2 } extern u8 id; void test(void){ id=2; } 淘宝店铺: 技术论坛:

11 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
typedef类型别名 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned __int64 uint64_t; 淘宝店铺: 技术论坛:

12 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
结构体:构造类型 Struct 结构体名{ 成员列表1; 成员变量2; }变量名列表; 在结构体申明的时候可以定义变量,也可以申明之后定义,方法是: Struct 结构体名字 结构体变量列表 ; 淘宝店铺: 技术论坛:

13 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
结构体作用: 同一个类型可以用数组,不同类型可以用结构体组织。 结构体可扩展性强。 举例说明: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 淘宝店铺: 技术论坛:

14 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3. 手把手写按键输入实验 C语言关键字 :static Static申明的局部变量,存储在静态存储区。 它在函数调用结束之后,不会被释放。它的值会一直保留下来。 所以可以说static申明的局部变量,具有记忆功能。 淘宝店铺: 技术论坛:

15 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3. 手把手写按键输入实验 每次调用getValue函数之后,返回值是多少? int getValue(void) { int flag=0; flag++; return flag; } int getValue(void) { static int flag=0; flag++; return flag; } 淘宝店铺: 技术论坛:

16 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
MDK中寄存器地址名称映射分析 51中映射方法: sfr P0 =0x80;//P0映射到地址0x80 P0=0x00//忘寄存器地址0x80赋值0x00 淘宝店铺: 技术论坛:

17 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
MDK中寄存器地址名称映射分析 STM32中操作: GPIOA->ODR=0x ; 值0x 是怎么赋值给了GPIOA的ODR寄存器地址的呢? 也就是说GPIOA->ODR这种写法,是怎么与GPIOA的ODR寄存器地址映射起来的? 淘宝店铺: 技术论坛:

18 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
MDK中寄存器地址名称映射分析 #define PERIPH_BASE ((uint32_t)0x ) #define AHB1PERIPH_BASE (PERIPH_BASE + 0x ) #define GPIOA_BASE (AHB1PERIPH_BASE + 0x0000) #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) typedef struct { __IO uint32_t MODER; __IO uint32_t OTYPER; __IO uint32_t OSPEEDR; __IO uint32_t PUPDR; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint16_t BSRRL; __IO uint16_t BSRRH; __IO uint32_t LCKR; __IO uint32_t AFR[2]; } GPIO_TypeDef; 淘宝店铺: 技术论坛:

19 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
MDK中寄存器地址名称映射分析 STM32F40x系列GPIOA寄存器地址映射 淘宝店铺: 技术论坛:

20 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
MDK中寄存器地址名称映射分析 直接进入代码讲解 淘宝店铺: 技术论坛:

21 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 淘宝店铺: 技术论坛:


Download ppt "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"

Similar presentations


Ads by Google