学习51单片机的第一个控制IO口的操作就是流水灯,stm32的学习我也是从一个流水灯开始,是stm32是32位机,里面有很多的寄存器,操作stm32单片机也可以使用寄存器操作,使用寄存器操作的好处就是程序的执行速度快,程序的体积小,但是,问题也有很多,比如不方便移植,stm32不同型号的寄存器是有差别的,同时开发的效率低,因为操作寄存器需要频繁地查芯片手册。
权衡了一下,我选用库函数点亮LED。
第一步,建立环境,我选用的单片机是stm32f103c8,下载器是st-link,编译软件是keil5.
首先,我需要配一个库,因为库我只需要GPIO,所以我就只用GPIO库。开始说正事。
建立几个文件夹先(显得比较专业)
说明:Doc说明文档,用来说明工程;Libraries是库函数文档用来放各种库,listings列表用来放编译时的文档,output是用来放输出文件的,project是用来放工程文件的,user是用来放用户文件的(主函数,自己写的函数,中断函数)
下面就开始往文档里放东西了,如图
这些东西是哪里得到的呢?https://www.stmcu.com.cn/寻找相应的固件库,或者我的网盘链接:https://pan.baidu.com/s/1Je-gXDjZJv3wuaQpsjCOLQ 密码:vvy6
然后建立一个keil工程
配置魔术棒
编译一下,发现有错,原因是我使用的是一个demo的it函数有些东西不适合我,删掉就行了
在编译就没问题了
关键字:stm32 点亮LED灯 库函数版
引用地址:
stm32点亮LED灯一(库函数版)
推荐阅读最新更新时间:2024-10-31 20:40
STM32开发笔记90: SX1268驱动程序设计(数据缓存)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍数据缓存的相关驱动程序。 一、工作原理 二、接收模式的数据缓存 In receive mode RxBaseAddr specifies the buffer offset in memory at which the received packet payload data will be written. The buffer offset of the last byte written in receive mode is then stored in RxDataPointer which is init
[单片机]
完美实现STM32单总线挂多个DS18B20
一般常见的STM32的关于DS18B20的例程都是检测一个传感器,代码一般都是跳过ROM检测,直接获取温度值。这种写法并不适用于单总线上挂载多个DS18B20的情况,Sandeepin的这个代码就是针对这种情况完善的单总线挂多个DS18B20检测,实现获取每个DS18B20的ID和温度。 主要的DS18B20时序代码没变,增加了搜索ROM函数,获取温度时先匹配ID。 核心代码如下: DS18B20.c文件代码: #include DS18B20.h #include Delay.h #include stdio.h // printf用 #define DS18B20_GPIO_NUM
[单片机]
程序结构理解(1) 以stm32为例
程序中的几个段理解 有些技术文章中会直接使用RO,请注意区分RO和RO-data的区别。 Code:即代码域,它指的是编译器生成的机器指令。 RO_data:ReadOnly data,即只读数据域,它指程序中用到的只读数据,全局变量,例如C语言中const关键字定义的全局变量就是典型的RO-data。 RW_data:ReadWrite data,即可读写数据域,它指初始化为“非0值”的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM区,因而应用程序可以修改其内容。例如全局变量或者静态变量,且定义时赋予“非0值”给该变量进行初始化。 ZI_data:ZeroInitialie data
[单片机]
STM32之GPIO端口输入模式配置举例
什么情况下用到输入模式? 在模拟采样时; 在按键输入时; 常用的输入模式有那些? 模拟输入; 上拉或下拉输入; GPIO上拉输入举例: #include key.h #include sys.h void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; //结构体变量声明 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);//使能GPIOE时钟 GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_3|GPIO_Pin_4); //K0=PE4,K1=
[单片机]
ST推出新款的图形处理性能强大的STM32微控制器
2016年2月2日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(ST)推出新款的STM32F767/769微控制器(MCU),内置功能丰富的存储器、图形处理器和通信外设,让ARM Cortex -M7处理器的强大性能和高能效拓展至更广泛的应用产品,例如便携或穿戴式消费电子产品、智能楼宇和工业控制器、智能家电、个人医疗设备、保健点医疗设备。 阵容强大的STM32系列微控制器的最新产品基于内置双精度浮点单元且支持DSP指令的216MHz/462DMIPS/1082 EEMBC CoreMark Cortex-M7内核,集成容量最高2MB的双区闪存、图形处理性能强大的Chrom-ART加速器、硬件JPEG加速器、TFT-L
[单片机]
STM32的RS485调试过程记录
RS485是半双工,RS422是全双工。 A接A,B接B,不要交叉。 RS485标准是4根线,定义如下: RO: Receiver Output: If A B by 200mV, RO will be high;If A B by 200mV, RO will be low.2 /RE: 接收器输出使能。当RE为低电平时,RO有效;当RE为高电平时,RO为高阻状态。 RI: Driver Input. A low on DI forces output Y low and output Z high. Similarly, a high on DI forces output Y high and output Z low
[单片机]
STM32+FATFS文件系统连续在同一个txt文件里写入内容
移植好fatfs文件系统之后,我们经常要在一个txt文件下写入数据,但是这些数据可能需要多次写入,那怎么办呢? 通过这几天的学习,有以下函数可以帮助我们进行多次写入数据。 1.打开文件 f_open(filescr2, 0:/201711022.txt , FA_OPEN_DEFAULT); 2.写数据 f_write(filescr1, test_buff0, sizeof(test_buff0), &bw1); 3.关闭文件 f_close(filescr1);//一定要关闭 第二次写入数据 1.打开文件 f_open(filescr2, 0:/201711022.txt , FA_OPEN_DEFAULT); 2.
[单片机]
Stm32固件库中关于NART的误解
Stm32 固件库中关于NART的误解 禁止自动重传模式(NART) 该模式主要用于满足CAN标准中,时间触发通信选项的需求。通过对CAN_MCR寄存器的NART位置’1’,来让硬件工作在该模式。 在该模式下,发送操作只会执行一次。如果发送操作失败了,不管是由于仲裁丢失或出错,硬件都不会再自动发送该报文。 网上有很多can的程序在注释的时候有这样的错误: 将 CAN_InitStructure.CAN_NART=DISABLE理解成为失能自动重传 但是NART的英文全称应该是no automatic retransmission,也就是没有自动重传。 那么CAN_InitStructure.CAN_NART=DISABLE的
[单片机]