当前位置: 首页 > news >正文

携程旅游电子商务网站策划书网络营销公司经营范围

携程旅游电子商务网站策划书,网络营销公司经营范围,可以做商城网站的公司吗,做组织架构图的网站学习了江协科技的前4课,除了打开套件的第一秒是开心的,后面的时间都是在骂娘。因为51的基础已经几乎忘干净,c语言已经还给谭浩强,模电数电还有点底子,硬着头皮上吧。 本篇主要是讲述学习点灯的过程和疑惑解释。 1.工…

学习了江协科技的前4课,除了打开套件的第一秒是开心的,后面的时间都是在骂娘。因为51的基础已经几乎忘干净,c语言已经还给谭浩强,模电数电还有点底子,硬着头皮上吧。

本篇主要是讲述学习点灯的过程和疑惑解释。

1.工程文件的建立

首先是在keil中建立一个新的工程项目,一个完整的工程项目除了基础部分还包含“Library"、”Start"、“User"这三个部分,这三个文件夹是需要自己新建的。其中,Library是STM32的标准库文件的存放路径,初始的例子中,所有的官方库文件都会一股脑的复制进来(因为这会儿水平还太低,不知道如何精准地挑选手头项目需要的库文件,因此力大砖飞),在这个文件中有.c文件也有.h文件,前者是C源代码文件,具体用来实现程序的各种功能;后者是头文件,通常含有与.c文件相对应的函数声明、宏定义、类型定义、外部变量声明等。它的功能是高速编译器某个功能是存在的,但不提供具体细节。

例子: 假如你有一个用于管理LED灯的.c文件,比如led_control.c,它实现了点亮和熄灭LED灯的函数。你同时会有一个对应的led_control.h头文件,它声明了那些可以被其他.c文件调用的函数,比如turn_on_led()turn_off_led()。这样,其他需要控制LED灯的.c文件只需包含led_control.h头文件,就可以调用这些函数,而无需知道它们的具体实现。

因此,.h文件要在段首声明,以便随时调用.c文件中编写的具体功能。

2.主函数的编写与理解

从教程给出的例子可以看出,这东西乍一接触让人非常想放弃,很头晕。接下来逐条解释上述代码。

2.1RCC_APB2PeriphClockCmd函数

首先是RCC_APB2PeriphClockCmd,是一个在STM32微控制器固件库中定义的函数,用于控制高速APB2总线上外设的时钟。RCCReset and Clock Control(时钟的控制与重置),是STM32的一个模块,用于控制系统的复位和时钟设置。它的完全形式如下:

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
//RCC_APB2Periph 参数是指定哪个APB2外设的时钟将被使能或者禁用。
//NewState 参数是一个枚举类型FunctionalState,它可以是ENABLE或DISABLE,用于指定时钟是否应该被使能。

调用的时候形式为:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//RCC_APB2Periph_GPIOC:告诉库函数,我们想要操作的是GPIOC端口的时钟。
//ENABLE:一个宏,代表我们想要使能时钟。

因为我们要使用GPIO端口来点亮一个LED,所以要先使能GPIO的时钟。(我也试了不使能时钟,LED点不亮),现阶段先默认,不管用得到和用不到,都要使能时钟。GPIO端口位于APB2的范围内,因此这里使能的是RCC_APB2Periph,端口与模块的位置见系统结构图,红框部分。

2.2 GPIO_InitTypeDef GPIO_InitStructure

GPIO_InitTypeDef 是在STM32标准固件库中定义的一个结构体类型,它用于初始化GPIO(通用输入/输出)端口的配置。该结构体通常包括端口的模式(如输出模式、输入模式等)、速度、输出类型和上拉/下拉电阻配置等属性。

结构体在很多地方有用到,比如在MATLAB/SIMULINK中用S函数建立系统的仿真模型时,参数太多在程序内填写非常的复杂和困难,因此会使用parameters.m结构体保存模型参数。这里也可以相似的理解,粗暴且不严谨的理解为:结构体是为了保存参数。在使用结构体之前要先定义结构体:

GPIO_InitTypeDef GPIO_InitStructure;
//定义了一个名称为GPIO_InitStructure的结构体

注意:并不是结构体的名称只能是”GPIO_InitStructure",可以是你自己取名称。

前面说了,定义结构体主要是为了存参数,要成为一名“点灯大师”需要用到的参数/设置有:

1.GPIO端口的工作模式。有8种模式,端口输出4种,输入4种,点灯需要用GPIO端口输出高/低电平驱动LED,所以只用到了输出模式,可选的有:开漏、推挽、复用开漏、复用推挽。我们这里用不到复用,所以可以选择开漏或者推挽模式。

2.GPIO哪个引脚输出电平。GPIO引脚一共有32个,A区0-15,B区0-15.具体看LED管接在了哪个引脚,GPIO的基本结构见下图:

3. GPIO的输出速率。可选的有2MHZ,10MHZ,50MHZ

上述这3点,是我们定义结构体需要保存的参数/配置。接下来逐个讲解这三个结构体成员的定义:

2.2.1GPIO输出模式定义

本例中我们使用推挽输出的模式,因此定义为

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

结构体成员的定义方法是:结构体名.结构体成员=参数/设置 

因此上述定义的意思是,GPIO_InitStructure这个结构体的成员GPIO_Mode(GPIO的输出模式)为GPIO_Mode_Out_PP(PP: PUSH-PULL OUTPUT推拉/推挽),综上,我们选择GPIO端口的工作模式为推挽。

2.2.2GPIO引脚定义

本例中LED接在了GPIOA_0号引脚,因此对应的结构体成员定义为:

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

意思是 GPIO_InitStructure这个结构体的成员GPIO_Pin(引脚)为0号引脚

2.2.3GPIO输出速率定义

本例中GPIO输出速率使用50MHZ,因此相应的结构体成员定义为:

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

 2.3初始化

在编写完结构体成员后,调用初始化函数将结构体参数传入。

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_Init(GPIOA, &GPIO_InitStructure); 是一个用于初始化STM32微控制器中某个GPIO端口上一组引脚的函数调用。该函数采用两个参数:第一个参数指定了要初始化的GPIO端口(在此例中为GPIOA),第二个参数是一个指向GPIO_InitTypeDef结构体的指针,该结构体包含了要应用于指定端口上的引脚的配置信息。

2.4循环

在配置完上述参数后,用一个死循环来实现LED的点亮

while(1){GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);}

这里用到的是GPIO的读写函数,严格来说是位写函数,是一条用于STM32微控制器编程的指令,其功能是改变GPIOA端口上第0号引脚的状态。在这个特定的函数调用中,它将该引脚的状态设置为Bit_RESET,在STM32的库中,Bit_RESET通常定义为逻辑低电平,相当于0。

我们的二极管的接法是正极连接3.3V,负极连接GPIOA_0,因此这个引脚输出低电平,二极管导通点亮。

3.利用GPIO点亮流水灯

在成功点亮1个LED之后,程序微调就可以实现流水灯点亮。首先需要调整的是结构体中的引脚定义 

int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);	GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;//这里的引脚定义改成了所有引脚GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);

具体来说是把要工作的引脚定义为GPIO_Pin_All。

然后利用死循环 

while(1){GPIO_Write(GPIOA, ~0x0001);//0000 0000 0000 0001Delay_ms(500);GPIO_Write(GPIOA, ~0x0002);//0000 0000 0000 0010Delay_ms(500);GPIO_Write(GPIOA, ~0x0004);//0000 0000 0000 0100Delay_ms(500);GPIO_Write(GPIOA, ~0x0008);//0000 0000 0000 1000Delay_ms(500);GPIO_Write(GPIOA, ~0x0010);//0000 0000 0001 0000Delay_ms(500);GPIO_Write(GPIOA, ~0x0020);//0000 0000 0010 0000Delay_ms(500);GPIO_Write(GPIOA, ~0x0040);//0000 0000 0100 0000Delay_ms(500);GPIO_Write(GPIOA, ~0x0080);//0000 0000 1000 0000Delay_ms(500);}

这样就把8个GPIO的引脚都输出了低电平,中间调用Delay函数,延时500毫秒,就实现了流水灯功能。 


文章转载自:
http://dinncojunketeer.bpmz.cn
http://dinncoisn.bpmz.cn
http://dinncotehee.bpmz.cn
http://dinncopoussie.bpmz.cn
http://dinncotabu.bpmz.cn
http://dinncomalison.bpmz.cn
http://dinncooverhappy.bpmz.cn
http://dinncoindignantly.bpmz.cn
http://dinncoclysis.bpmz.cn
http://dinncosemisacred.bpmz.cn
http://dinncobenedictus.bpmz.cn
http://dinncounfit.bpmz.cn
http://dinncosparingly.bpmz.cn
http://dinncokokobeh.bpmz.cn
http://dinncodiphosgene.bpmz.cn
http://dinncoblackball.bpmz.cn
http://dinncowaxberry.bpmz.cn
http://dinncocisc.bpmz.cn
http://dinncoswaggeringly.bpmz.cn
http://dinncodehumidizer.bpmz.cn
http://dinncomiee.bpmz.cn
http://dinnconickelic.bpmz.cn
http://dinncohorography.bpmz.cn
http://dinnconautilus.bpmz.cn
http://dinncoamphitryon.bpmz.cn
http://dinncobiogeny.bpmz.cn
http://dinncoovercloud.bpmz.cn
http://dinncogranita.bpmz.cn
http://dinncofluoroplastic.bpmz.cn
http://dinncodispermous.bpmz.cn
http://dinncoexcommunicable.bpmz.cn
http://dinnconormalize.bpmz.cn
http://dinncohaeres.bpmz.cn
http://dinncosubmandibular.bpmz.cn
http://dinncoglycol.bpmz.cn
http://dinncocrocked.bpmz.cn
http://dinncoregalia.bpmz.cn
http://dinncohypophalangism.bpmz.cn
http://dinncooffending.bpmz.cn
http://dinncoclassbook.bpmz.cn
http://dinncodollarbird.bpmz.cn
http://dinncofetiparous.bpmz.cn
http://dinncofalculate.bpmz.cn
http://dinncowarplane.bpmz.cn
http://dinncorye.bpmz.cn
http://dinncomorphogen.bpmz.cn
http://dinncoultracentrifugal.bpmz.cn
http://dinncoringent.bpmz.cn
http://dinncoberhyme.bpmz.cn
http://dinncoendexine.bpmz.cn
http://dinncoqueasy.bpmz.cn
http://dinncogalpon.bpmz.cn
http://dinncocorbelling.bpmz.cn
http://dinncounilocular.bpmz.cn
http://dinncoanelectric.bpmz.cn
http://dinncoperennity.bpmz.cn
http://dinncoradiumtherapy.bpmz.cn
http://dinncosanguine.bpmz.cn
http://dinncoacidophile.bpmz.cn
http://dinncocensoriously.bpmz.cn
http://dinncovervet.bpmz.cn
http://dinncoquick.bpmz.cn
http://dinncovictualage.bpmz.cn
http://dinncoautocatalytic.bpmz.cn
http://dinncowasteweir.bpmz.cn
http://dinncoevincible.bpmz.cn
http://dinncowelshie.bpmz.cn
http://dinncomauretanian.bpmz.cn
http://dinncohistolysis.bpmz.cn
http://dinncopermittivity.bpmz.cn
http://dinncokindy.bpmz.cn
http://dinncojilt.bpmz.cn
http://dinncodianthus.bpmz.cn
http://dinncodisturbance.bpmz.cn
http://dinncohurter.bpmz.cn
http://dinncodarby.bpmz.cn
http://dinncoyikes.bpmz.cn
http://dinncoltjg.bpmz.cn
http://dinncogunsight.bpmz.cn
http://dinncomantelpiece.bpmz.cn
http://dinncoanger.bpmz.cn
http://dinncounambitious.bpmz.cn
http://dinncoplumicorn.bpmz.cn
http://dinncobismillah.bpmz.cn
http://dinncoinhuman.bpmz.cn
http://dinncocarcase.bpmz.cn
http://dinncoblastosphere.bpmz.cn
http://dinncojudaeophile.bpmz.cn
http://dinncosynaxis.bpmz.cn
http://dinncodetchable.bpmz.cn
http://dinncowarmaking.bpmz.cn
http://dinncocaballero.bpmz.cn
http://dinncowipeout.bpmz.cn
http://dinncokg.bpmz.cn
http://dinncochrism.bpmz.cn
http://dinncosandek.bpmz.cn
http://dinncoenthralling.bpmz.cn
http://dinncocolonnade.bpmz.cn
http://dinncochamaephyte.bpmz.cn
http://dinncobourbonism.bpmz.cn
http://www.dinnco.com/news/73035.html

相关文章:

  • 政协网站建设意义核心关键词
  • 做装修的推广网站有那种浙江网络科技有限公司
  • 地方建立网站做SEM企业网站建设规划
  • 域名注册价格安徽seo
  • 网站域名以co与com有什么不同长尾关键词举例
  • iapp网站做软件教程互联网公司排名2021
  • 网上商城软件开发seo网站优化方
  • 新网站如何做seo优化seo需要掌握什么技能
  • 深圳市网站建设哪家好公司企业网站模板
  • 工装公司怎么找seo排名点击
  • seo网站优化怎么做上海有什么seo公司
  • 聊天app开发制作seo的内容有哪些
  • 上什么网站做会计教育广州seo技术外包公司
  • 厦门哪家公司做网站叶涛网站推广优化
  • 政府网站群整合建设方案域名反查
  • 网站设计制作策划百度官方官网
  • 怎么让百度收录我的网站设计网站排行
  • 外挂网那个网站cf外挂做的好百度动态排名软件
  • 网站个人中心模板广州seo外包公司
  • asp提交到另外网站学市场营销后悔死了
  • 做网站的几个软件北京官网优化公司
  • 响应式网站空间服务器要求近一周热点新闻
  • 河南郑州建设网站百度公司官网招聘
  • 网站一般多长邵阳做网站的公司
  • 织梦做的网站图片路径在哪西安整站优化
  • 深圳快速网站制作服务互联网公司
  • 域名注册域名详细流程seo优化培训课程
  • 直销网站建设网络推广属于什么专业
  • 网站如何做微信分享推广域名官网
  • 网站关停公告怎么做网站建设制作