本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看. 第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED... 第一步,建立一个文件夹0.0 第二步,打开keil,建立工程 在弹出来的对话框中选择你所用的STM32的芯片. 在接下来弹出来的对话框中选择是,这样keil就帮我们建立好了启动文件. 第三步,新建一个main.c文件,并添加到工程中. 点击New按钮,建立一个文本文件. 在建立的文本文件中输入C中的main函数 点击保存 保…
在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并且自己编写C语言的库函数版本,方便以后开发,同时也是对自己C语言封装能力的锻炼. 先贴韦老大的代码: start.s: .text .global _start _start: /* 设置内存: sp 栈 */ ldr sp, = /* nand启动 */ // ldr sp, =0x4000000…
第8章     自己写库—构建库函数雏形 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx 中文参考手册>.<STM32F429规格书> 虽然我们上面用寄存器点亮了 LED,乍看一下好像代码也很简单,但是我们别侥幸以后就可以一直用寄存器开发.在用寄存器点亮 LED 的时候,我们会发现 STM32 的寄存器都是 32 位的,每次配置…
第5章     什么是寄存器 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx 中文参考手册>.<STM32F429xx数据手册>. 学习本章时,配合<STM32F4xx 中文参考手册>"存储器和总线架构"."嵌入式FLASH接口"及"通用I/O(GPIO)"章节一起阅…
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第17章       STM32H7之GPIO的HAL库API 本章教程为大家讲解GPIO(General-purpose I/Os)的API使用和注意事项.GPIO是所有外设里面较容易掌握的,但也是用到最多的. 配合第15章讲解的各种IO模式再学习本章,更容易理解透彻. 17.1 初学者重要提示 17.2 GPIO涉及到的寄存器 17.3 源文件stm32h7xx_…
一:编译第一个程序 int main() //主函数 { } void SystemInit() //在执行主函数前,会被调用.不进行实现.在启动文件中被调用 { } ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP 启动文件:复位程序部分汇编代码 二…
前面文章介绍了存储器映射.寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫.这里我们通过一个实例来对 C 语言封装寄存器进行介绍. 具体实例:控制 GPIOC 端口的第 0 管脚输出一个低电平.首先我们需要知道GPIOC 端口外设是挂接在哪个总线上的,然后根据总线基地址和本身的偏移地址得到 GPIOC 外设基地址,最后通过这个外设基地址得到里面各种寄存器基地址. 总线和外设基地址封装 根据寄存器的概念,我们可以使用 C 语言中的宏定义对寄存器进行定义.具体代码如下: 1 //定义…
对于MCU,一切底层配置,最终都是在配置寄存器 51单片机访问地址 51单片机经常会引用一个reg51.h的头文件.下面看看它是怎么把名字和寄存器联系在一起的: 1 sfr p0=0x80; 2 p0=0x00; sfr是一种扩充数据类型,使用一个内存单位,值域为0-255.利用它可以访问51单片机内部所有的特殊功能寄存器.前一句"sfr p0=0x80"就是将P0映射到地址0x80.以后对P0的读写操作即使对0x80地址对应的单元进行读写操作:注意:单独的地址是不能进行操作的,必须对…
原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年本人C语言笔试难点进行梳理,希望能对今年应届毕业生的应聘有所帮助. 2013年10月18日更新-->    攻破C语言这个帖子更新到这里,我不仅仅是为了补充大学学生遗漏的知识,我更重要的是希望通过我的经验,你们实际项目中的C语言写得漂亮,写出属于你的风格.“朱兆祺STM32手记”(http://bb…
#include <stdio.h> #include <malloc.h> #include <memory.h> typedef struct gpio { int pr; int pl; }* GPIO_MemMapPtr; //注释为了避免内存出错 //GPIO_MemMapPtr GPIO_Ptr; //定义一个结构体指针变量,GCC会分配一个内存的. #define PTA_BASE_PTR ((GPIO_MemMapPtr)0x0028ff10) #def…