品牌 资讯 搭配 材料 时尚 热点 行业 首饰 玉石 行情

跑马灯实验和我为什么使用库函数?_环球滚动

2023-05-08 11:23:16 来源:互联网

希望读者能点赞,互动,分享,让我更有动力,等我彻底写完stm32的学习日志,我会制作成电子书,分享给大家。

我为什么使用库函数进行编写程序?

截至2020年8月28日,ST公司一共开发了三个库,分别是标准外设库(STD),HAL库,LL库,此前使用直接控制寄存器的方式控制微处理器,从开发时间上是寄存器--->标准外设库--->HAL库--->LL库,其中寄存器的优点是代码量少,标准外设库可移植性强,HAL库和LL库虽然代码量少于标准外设库和固定平台的可移植性增强,但是在跨平台的可移植性大大降低,各平台的兼容性差,并且STM32Cube平台有些臃肿,我鉴于学习时间和未来的跨平台考虑,选择了标准外设库。


【资料图】

下面开始正文:

跑马灯实验:

重要翻译:

Reset Clock Controller ——RCC寄存器(复位时钟控制器寄存器)

步骤:

确定stm32中的所需引脚的连接LED0-PB5LED1-PE5确定使用库函数头文件Stm32f10x_gpio.hStm32f10x_rcc.h源文件Stm32f10x_gpio.cStm32f10x_rcc.c一般常见库函数重要函数:1个初始化函数:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

作用:

初始化一个或者多个IO口(同一组)的工作方式和速度。该函数主要是操作GPIO_CRL(CRH)寄存器,在上拉或者下拉的时候有设置BSRR或者BRR寄存器

GPIOx: GPIOA~GPIOG

这里的 GPIO_InitTypeDef* GPIO_InitStruct为:

typedef struct { uint16_t GPIO_Pin; //指定要初始化的IO口  GPIOSpeed_TypeDef GPIO_Speed; //设置IO口输出速度 GPIOMode_TypeDef GPIO_Mode; //设置工作模式:8种中的一个 }GPIO_InitTypeDef;

GPIO_Init函数初始化样例:

GPIO_InitTypeDef GPIO_InitStructure;  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 ,可高可低 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOB, &GPIO_InitStructure);         //根据设定参数初始化GPIOB.5
2个读取输入电平函数:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);作用:读取某个GPIO的输入电平。实际操作的是GPIOx_IDR寄存器。

例如:

GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5);//读取GPIOA.5的输入电平uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

作用:读取某组GPIO的输入电平。实际操作的是GPIOx_IDR寄存器。

例如:

GPIO_ReadInputData(GPIOA);//读取GPIOA组中所有io口输入电平
2个读取输出电平函数:
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);uint8_t GPIO_ReadOutputDataBit (GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:读取某个GPIO的输出电平。实际操作的是GPIO_ODR寄存器。

例如:

GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5);//读取GPIOA.5的输出电平 uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

作用:读取某组GPIO的输出电平。实际操作的是GPIO_ODR寄存器。

例如:

GPIO_ReadOutputData(GPIOA);//读取GPIOA组中所有io口输出电平
4个设置输出电平函数:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:设置某个IO口输出为高电平(1)。实际操作BSRR寄存器

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:设置某个IO口输出为低电平(0)。实际操作的BRR寄存器。

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

这两个函数不常用,也是用来设置IO口输出电平。

编程

文件结构图:

文件结构图

硬件编程:

Led.h

#ifndef __LED_H #define __LED_H   //#include "sys.h" //LED 端口定义 //#define LED0 PBout(5)// DS0-digital signal 0//#define LED1 PEout(5)// DS1  void LED_Init(void);//初始化 #endif 

Led.c

#include "led.h" #include "stm32f10x.h"//初始化 PB5 和 PE5 为输出口.并使能这两个口的时钟 //LED IO 初始化 void LED_Init(void) {     GPIO_InitTypeDef GPIO_InitStructure; //定义一个结构体      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能 PB,PE 端口时钟     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //指定端口,LED0-->PB.5 推挽输出     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //指定模式,推挽输出     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度    GPIO_Init(GPIOB, &GPIO_InitStructure); //端口初始化    GPIO_SetBits(GPIOB,GPIO_Pin_5);         //PB.5  输出高电平       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;    //LED1-->PE.5 推挽输出     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_Init(GPIOE, &GPIO_InitStructure);  //端口初始化    GPIO_SetBits(GPIOE,GPIO_Pin_5);   //PE.5  输出高   } 

main.c

#include "led.h" #include "delay.h" //#include "sys.h" #include "stm32f10x.h"//跑马灯实验 int main(void)  {    delay_init();                //延时函数初始化   LED_Init();               //初始化与 LED 连接的硬件接口  while(1)       {       //LED0 =0;     //LED1 =1;  //delay_ms(1000);             //延时 300ms  //LED0 =1;  //LED1 =0;  //delay_ms(300);             //延时 300ms           GPIO_SetBits(GPIOB,GPIO_Pin_5);//置高电平        GPIO_SetBits(GPIOE,GPIO_Pin_5);//同上        delay_ms(3000);          GPIO_ResetBits(GPIOB,GPIO_Pin_5);//置低电平        GPIO_ResetBits(GPIOE,GPIO_Pin_5);        delay_ms(3000);    } }  

添加头文件路径,设置obj路径,添加target文件夹和头文件,源文件

按照上面的步骤设置,就可以完成最简单的跑马灯实验。

标签:

(责任编辑:)

相关文章

跑马灯实验和我为什么使用库函数?_环球滚动

​希望读者能点赞,互动,分享,让我更有动力,等我彻底写完stm32的学习日志,我会制作成电子书,分享给大家

2023-05-08 11:23:16

【报资讯】苯胺行情周报(5.1-5.8)

​5月8日,生意社苯胺基准价为11750 00元 吨,与本月初(11775 00元 吨)相比,下降了-0 21%。据生意社商品行情

2023-05-08 11:06:37

一问到底丨90多米长“风车”叶片上高速 如何一路畅通?

​在公路上运输风力发电机风车叶片,卡车在直行、转弯时都很畅通。但两个多月前,如何将这些“大家伙”运

2023-05-08 10:33:11

夏季易发生细菌性食源性疾病 气温升高 小心病从口入 世界热推荐

​天津北方网讯:随着气温升高,各类病原微生物生长繁殖较快,细菌性食源性疾病进入高发期和易发期。市疾控中

2023-05-08 10:08:12

跨境通将参加山西辖区上市公司投资者网上集体接待日活动-当前通讯

​为进一步加强与投资者的互动交流,公司将参加“2023年山西辖区上市公司投资者集体接待日活动”。

2023-05-08 09:41:39

世界观察:电力数据回暖 经济企稳回升态势持续

​多项电力数据显示,今年以来,我国消费信心逐步回暖,企业开足马力生产,经济增长企稳回升态势明显。一季度

2023-05-08 09:07:43

波司登背景实控人10亿元接盘会畅通讯

​会畅通讯则是国内知名的云视频品牌,从成立至今始终聚焦于音视频通信服务领域,立志成为“中国最优秀的云视

2023-05-08 08:55:24

法甲-姆巴佩破门梅西遭三停 巴黎3-1特鲁瓦6分领跑|今日报

​法甲-姆巴佩破门梅西遭三停巴黎3-1特鲁瓦6分领跑,里奥梅西,特鲁瓦,姆巴佩,维拉蒂,佩雷拉,法甲

2023-05-08 08:17:20

云瀑万顷!航拍江西庐山壮阔瀑布云美景_今日聚焦

​5月6日,江西庐山牯岭山城涌现海量瀑布云涛,风云变幻间,再现“溪云初起日沉阁,山雨欲来风满楼”诗中气象

2023-05-08 07:21:36

剑雨浮生简谱_剑雨浮生

​1、《剑雨浮生》。2、由萨顶顶和吴青峰演唱。以上就是【剑雨浮生简谱,剑雨浮生】相关内容。

2023-05-08 06:06:18

如果说你若成佛 歌词_如果说你若成佛 当前消息

​1、阿弥陀佛,冤冤相报何时了,滥杀无辜制造地狱业,六道轮回苦海无边,放下屠刀,立地成佛,回头是岸。2、

2023-05-08 05:03:57

李一桐粉丝优先招聘引争议|天天新视野

​追星在很多人眼中都是一个十分花钱的爱好,毕竟粉丝和偶像之间的关系用一句话概括就是:你我本无缘,全靠我

2023-05-08 02:12:48

24孔复音口琴教学视频 24孔c调口琴bd谱大全集|天天快报

​今天来聊聊关于24孔复音口琴教学视频,24孔c调口琴bd谱大全集的文章,现在就为大家来简单介绍下24孔复音口

2023-05-07 23:12:59

中控智慧考勤软件下载_中控智慧考勤机使用说明 全球速看

​1、刷卡判断身份时将卡在本机感应区轻轻一晃即可,切勿用卡片拍打机器。2、2.在初始化系统时,机器将会丢

2023-05-07 21:47:57

海绵状血管瘤_婴幼儿血管瘤贴 天天观热点

​1、不用犹豫选择二十局医院吧这个医院心脑科是这个医院的名牌这个医院就靠这个专科活的而且越办越好我爷爷

2023-05-07 21:04:06

新疆保险业首季提供风险保障超14万亿元-环球看点

​一季度,新疆保险业累计为实体经济提供风险保障14 59万亿元,赔付支出84 81亿元。一季度,新疆保险业加快推

2023-05-07 19:59:17

当前快播:3月我国汽车整车出口环比增长19.4% 同比增长1.6倍

​智通财经APP获悉,据中汽协整理的海关总署数据显示,2023年3月,我国汽车整车出口环比增长19 4%,同比增长1

2023-05-07 18:53:52

延期付款采购

​1、延期付款采购即在交易合同的基础上,买方先预进商品,等商品卖出后,按约定的时间再付货款的方法。2、很

2023-05-07 17:55:38

“富饶的神山”迈向深部勘采 国内最大的铌、钪、萤石产业呼之欲出_全球快资讯

​坐拥世界第一大稀土矿藏、第二大铌、钍矿以及国内最大的萤石矿,白云鄂博被誉为“富饶的神山”,而背靠白云

2023-05-07 17:11:28

人民币国际化稳步向前 今年一季度人民币跨境结算规模稳步扩大_环球看热讯

​中银证券全球首席经济学家管涛:人民币作为融资货币的海外需求在逐渐增加,我们看到根据SWIFT(环球银行金

2023-05-07 16:14:35

电脑修音软件推荐(电脑修音软件哪个好)

​1、nEOiMAGING(光影魔术手)0 28┊数码照片画质处理的软件┊简体中文绿色正式版“nEOiMAGING”是一个对数码

2023-05-07 15:01:44

天舟六号携带水果重量约是天舟五号两倍 天天讯息

​天舟货运飞船是目前世界上运货能力最强的货运飞船之一。据介绍,天舟六号此次运送的物资主要包括服装、食品

2023-05-07 14:13:23

世界今日报丨江川区气象台发布大风预警信号蓝色预警【Ⅳ级/一般】【2023-05-07】

​江川区气象台2023年5月7日12时15分发布大风蓝色预警信号:预计未来12小时江川区将受大风影响,平均风力可达

2023-05-07 13:22:48

长脸适合什么眼镜框配图_长脸适合什么眼镜框

​1、长脸的特点是比较有骨感,大部分人都有这样的优点的。2、长脸的话,因为脸型会显的长点,因而在镜框上的

2023-05-07 12:53:27

天舟六号计划近日择机发射 船箭组合体转运至发射区 每日观察

​天舟六号货运飞船与长征七号遥七运载火箭组合体5月7日垂直转运至发射区,计划于近日择机实施发射。

2023-05-07 12:02:00

焦点讯息:破41℃!海南这两地热到破纪录

​海南省气象台预计,7日白天,定安、屯昌、澄迈、儋州、白沙、昌江和东方7个市县的大部分乡镇将出现37℃以上

2023-05-07 10:57:09

巴基斯坦总统:要打造紧密牢固的巴中友谊|每日关注

​巴基斯坦总统阿尔维在伊斯兰堡会见到访的中国外交部长秦刚时表示,巴中友谊根植于两国人民深厚的传统情谊。

2023-05-07 10:08:31

每日视讯:三明市3家企业入选省级博士后创新实践基地

​东南网5月6日讯(本网记者蔡晓卿)近日,省人社厅公布的2023年新设立省级博士后创新实践基地名单,三明推荐

2023-05-07 09:22:05

动态:时隔多年后的换代,这次再无对手 全新梅赛德斯-奔驰E级前瞻分析

​作为换代车型,全新奔驰E级(W214)之前是各种“挤牙膏”的方式给我们一点点透露信息,新车在造型和使用体

2023-05-07 08:59:23

酒店住满民宿爆火!旅游市场重回上行通道,行业坚定全面复苏信心

​小猪民宿数据显示,截至5月4日,平台“五一”期间乡村民宿订单量同比增长超过7倍,平均客单价约为500元。不

2023-05-07 07:42:21