【嵌入式实验】南航嵌入式实验报告——GPIO实验_南航nuaa嵌入式系统实验报告-程序员宅基地

技术标签: stm32  arm开发  # 嵌入式系统原理与应用  单片机  

嵌入式系统原理与应用实验报告-GPIO实验

一、实验目的

1.1 基于GPIO的LED跑马灯实验
  • 熟悉MDK-ARM基础开发环境
  • 掌握工程模板的使用
  • 掌握GPIO输出的方法,包括汇编、寄存器操作和基于固件库的GPIO输出操作方法
  • 熟悉在本嵌入式实验开发平台上运行一个无操作系统环境下程序设计的方法
1.2 基于GPIO的简单人机交互接口实验
  • 掌握GPIO初试化操作
  • 掌握GPIO输入输出功能和基于寄存器和固件库的GPIO输入输出方法
  • 练习添加代码,能够灵活应用GPIO端口进行输入/输出操作
1.3 基于GPIO的直流电机控制实验
  • 掌握GPIO初试化操作
  • 掌握GPIO输入输出功能和基于寄存器和固件库的GPIO输入输出方法
  • 掌握直流电机控制方式

二、实验原理(硬件连接及软件流程、简单原理说明)

2.1 实验设备
  • 硬件:PC一台、WEEEDK嵌入式实验开发平台一套
  • 软件:操作系统Windows、MDK-ARM 集成开发环境
2.2 实验硬件连接图
image-20220511132002860

image-20220527011622415

2.3 实验简单原理

​ STM32F10x微控制器具有7个GPIO端口,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,每个GPIO端口有16个I/O引脚,可配置为输入或输出,输入缓冲,输出锁存。配置寄存器GPIO_CRL和GPIO_CRH可以分别对0-7和8-15引脚进行配置,主要包括通过MODE配置为输入还是输出,通过CNF结合MODE可配置为采用输入哪种方式,输出采用哪种方式。

image-20220527011559375

image-20220527011605880

image-20220527011524255


三、实验内容与实验步骤

3.1 基于GPIO的LED跑马灯实验
3.1.1 实验内容
  • 让LED1、LED2、LED3、LED4轮流闪光(跑马灯)
  • 在步骤(1)完成后,跑马灯行列加入LED5,让ED1、LED2、LED3、LED4、LED5轮流闪光
3.1.2 实验步骤

(1) 连接+5V电源到开发板,并打开电源开关,将ST-LINK 仿真器连接到WEEEDK嵌入式系统实验开发板的 JTAG插座上,USB 插头连接到PC的USB插口。如果没有驱动请安装ST-LNK 驱动,直到在设备管理器上看到STMicroelectronics STLink dongle为止。

(2) 复制"GPIO-LED跑马灯"文件夹中的所有内容到D盘,双击 GPIO-LED跑马灯实验的\Project\Project.uvprojx 实验工程文件,打开实验工程,阅读 main()函数。

(3) 按F7 功能键编译并链接工程。

(4) 按Ctrl+F5键或单击调试按钮,进入集成调试环境。

(5) 练习使用F10功能键单步执行、Crl+F10键执行到光标处以及F5功能键全速执行等断方式,在看执行代码后LED1~LED4指示灯的变化情况。

(6) 在全速运行时,除了观察跑马灯闪光外,还要观察外设窗口,查看相关寄存器的值及寄存器的变化。

(7) 通过改变GPIOD输出寄存器的ODR的值ODRi来管擦和LED亮灭情况

​ 修改ODRi值,当ODRi=1时,灯灭;当ODRi=0时,灯亮

(8) 退出调试返回编辑模式,进行实验内容(2),用杜邦线连接JP13-LED5和P2-PB7,使PB7与LED5连接

​ 连接后如下图所示

image-20220527011638497

(9) 修改GPIO初试化程序,包括是能GPIOB时钟,配置PB7为10MHz推挽输出并初始化为逻辑1(LED5灭)

添加的程序块为

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*使能PB口时钟*/
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;/*选择PD7引脚*/
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  		/*频率10MHz*/
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;			/*推挽输出*/
	GPIO_Init(GPIOB, &GPIO_InitStructure);                /*初始化GPIOB端口*/	
	/*---------初始化状态四个LED全灭OFF------------*/
	GPIO_SetBits(GPIOB,GPIO_Pin_7);/*PB7输出为高电平,ED5灭*/

(10)在main()循环体中添加让LED5闪烁的代码

添加的程序块为 下面为修改后的循环体

while (1)
	{
    

		GPIO_ResetBits(GPIOD, GPIO_Pin_2); /* PD2=0 LED1亮  */
		Delayms(n);						   /* 延时          */
		GPIO_SetBits(GPIOD, GPIO_Pin_2);   /* PD2=1 LED1灭  */
		Delayms(n);						   /* 延时          */
		GPIO_ResetBits(GPIOD, GPIO_Pin_3); /* PD3=0 LED2亮  */
		Delayms(n);						   /* 延时          */
		GPIO_SetBits(GPIOD, GPIO_Pin_3);   /* PD3=1 LED2灭  */
		Delayms(n);						   /* 延时          */
		GPIO_ResetBits(GPIOD, GPIO_Pin_4); /* PD4=0 LED3亮  */
		Delayms(n);						   /* 延时          */
		GPIO_SetBits(GPIOD, GPIO_Pin_4);   /* PD4=1 LED4灭  */
		Delayms(n);						   /* 延时          */
		GPIO_ResetBits(GPIOD, GPIO_Pin_7); /* PD7=0 LED4亮  */
		Delayms(n);						   /* 延时          */
		GPIO_SetBits(GPIOD, GPIO_Pin_7);   /* PD7=1 LED4灭  */
		Delayms(n);						   /* 延时          */
		GPIO_ResetBits(GPIOB, GPIO_Pin_7); /* PB7=0 LED5亮  */
		Delayms(n);						   /* 延时          */
		GPIO_SetBits(GPIOB, GPIO_Pin_7);   /* PB7=1 LED5灭  */
		Delayms(n);						   /* 延时          */
	}

(11)按F7键编译并链接,然后排除所有错误,最后编译链接

(12)按CTRL+F5进入调试环境

(13)按F5功能键运行程序,查看跑马灯显示是否正确,不正确的话修改代码,继续调试到正确为止。运行时观察GPIOB窗口输出寄存器的变化

(14)试着改变闪光时间,观察显示效果

​ 修改以下函数即可

#define n 500 /*延时时间常数*/
void Delayms(uint16_t N)
{
    
	uint32_t i;
	for (i = 0; i < (8000 * N); i++)
		;
}

(15)请用寄存器操作方法实现LED1~LED5跑马灯显示

​ 按下面所示方式进行修改即可

GPIOD->ODR &= ~(1<<2) //让LED1亮
GPIOD->ODR |= (1<<2) //让LED1灭

(16)使用汇编语言让LED1闪烁

​ 添加下面的两个函数

__asm LED10()    //LED1 亮
{
    
	LDR R0, = 0X4001140C;
	LDRH R1, [R0];
	LDR R2, = 0XFFFFFFFB;
	AND R1, R1, R2;
	STRH R1, [R0];
	BX LR;
}

__asm LED11()	//LED1 灭
{
    
	LDR R0, = 0X4001140C;
	LDRH R1, [R0];
	LDR R2, = 0X00000004;
	ORR R1, R1, R2;
	STRH R1, [R0];
	BX LR;
}

​ 在主函数里调用即可

int main(void)
{
    
	//	SystemInit();     	//系统初始化,此处可以省,因为在启动文件中有该函数的调用
	GPIO_LED_Init(); // GPIO初始化

	while (1)
	{
    
		LED10();
		Delayms(n);
		LED11();
		Delayms(n);
	}
}
3.1.3 完整实验代码

初始代码

/************************************************************************************
**	  WEEEDK NUAA_CM3_107实验开发板(V4.1/V4.2)
**	  GPIO-LED应用跑马灯实验
**    操作及现象:下载程序运行后看到四个LED指示灯闪光(轮流亮灭,似跑马灯)
**    版    本:V4.1
**	  作    者:NUAA
**	  完成日期:	2017.3.18
************************************************************************************/
#include "stm32f10x_conf.h"

/*********************************************
 *函数名称:void Delayms(void)
 *
 *入口参数:N  ms
 *
 *出口参数:无
 *
 *功能说明:简单延时N ms
 **********************************************/
#define n 500 /*延时时间常数*/
void Delayms(uint16_t N)
{
    
	uint32_t i;
	for (i = 0; i < (8000 * N); i++)
		;
}
void GPIO_LED_Init(void)
{
    

	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);					 /*使能PD口时钟*/
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7; /*选择PD2/PD3/PD4/PD7引脚*/
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;						 /*频率10MHz*/
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;						 /*推挽输出*/
	GPIO_Init(GPIOD, &GPIO_InitStructure);								 /*初始化GPIOD端口*/
	/*---------初始化状态四个LED全灭OFF------------*/
	GPIO_SetBits(GPIOD, GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7); /*PD2/PD3/PD4/PD7输出为高电平,四LED全灭*/

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*使能PB口时钟*/
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;			  /*选择PD7引脚*/
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;	  /*频率10MHz*/
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	  /*推挽输出*/
	GPIO_Init(GPIOB, &GPIO_InitStructure);				  /*初始化GPIOB端口*/
	GPIO_SetBits(GPIOB, GPIO_Pin_7); /*PB7输出为高电平,ED5灭*/
}



__asm LED10()
{
    
	LDR R0, = 0X4001140C;
	LDRH R1, [R0];
	LDR R2, = 0XFFFFFFFB;
	AND R1, R1, R2;
	STRH R1, [R0];
	BX LR;
}

__asm LED11()
{
    
	LDR R0, = 0X4001140C;
	LDRH R1, [R0];
	LDR R2, = 0X00000004;
	ORR R1, R1, R2;
	STRH R1, [R0];
	BX LR;
}

int main(void)
{
    
	//	SystemInit();     	//系统初始化,此处可以省,因为在启动文件中有该函数的调用
	GPIO_LED_Init(); // GPIO初始化

	while (1)
	{
    

		// GPIO_ResetBits(GPIOD, GPIO_Pin_2); /* PD2=0 LED1亮  */
		// Delayms(n);						   /* 延时          */
		// GPIO_SetBits(GPIOD, GPIO_Pin_2);   /* PD2=1 LED1灭  */
		// Delayms(n);						   /* 延时          */
		// GPIO_ResetBits(GPIOD, GPIO_Pin_3); /* PD3=0 LED2亮  */
		// Delayms(n);						   /* 延时          */
		// GPIO_SetBits(GPIOD, GPIO_Pin_3);   /* PD3=1 LED2灭  */
		// Delayms(n);						   /* 延时          */
		// GPIO_ResetBits(GPIOD, GPIO_Pin_4); /* PD4=0 LED3亮  */
		// Delayms(n);						   /* 延时          */
		// GPIO_SetBits(GPIOD, GPIO_Pin_4);   /* PD4=1 LED4灭  */
		// Delayms(n);						   /* 延时          */
		// GPIO_ResetBits(GPIOD, GPIO_Pin_7); /* PD7=0 LED4亮  */
		// Delayms(n);						   /* 延时          */
		// GPIO_SetBits(GPIOD, GPIO_Pin_7);   /* PD7=1 LED4灭  */
		// Delayms(n);						   /* 延时          */
		// GPIO_ResetBits(GPIOB, GPIO_Pin_7); /* PB7=0 LED5亮  */
		// Delayms(n);						   /* 延时          */
		// GPIO_SetBits(GPIOB, GPIO_Pin_7);   /* PB7=1 LED5灭  */
		// Delayms(n);						   /* 延时          */
		LED10();
		Delayms(n);
		LED11();
		Delayms(n);
	}
}

3.2 基于GPIO的简单人机交互接口实验
3.2.1 实验内容
  • 在没有按键按下时,让LED1,LED2,LED3,LED4轮流闪光,当KEY1按下时LED1闪光,当KEY2按下时LED2闪光,当KEY3按下时LED3闪光,当KEY4按下时LED4闪光。添加代码,补充功能是按下任意键,蜂鸣器均响一声。
3.2.2 实验步骤

(1) 连接+5V电源到开发板,并打开电源开关,将ST-LINK 仿真器连接到WEEEDK嵌入式系统实验开发板的 JTAG插座上,USB 插头连接到PC的USB插口。如果没有驱动请安装ST-LNK 驱动,直到在设备管理器上看到STMicroelectronics STLink dongle为止。

(2) 复制"GPIO-KEYLED跑马灯"文件夹中的所有内容到D盘,双击 GPIO-LED跑马灯实验的\Project\Project.uvprojx 实验工程文件,打开实验工程,阅读 main()函数。

(3) 按F7 功能键编译并链接工程。

(4) 按Ctrl+F5键或单击调试按钮,进入集成调试环境。

(5)按F5功能键全速执行。查看执行代码后LED1~LED4知识灯的变化情况。在没有任何操作时,与跑马灯效果已有,4个LED闪光二极管依次发光

(6)分别按KEY1、KEY2、KEY3和KEY4键 ,观察LED1、LED2、LED3、LED4显示情况

​ 连接图如下所示

image-20220527011717295

(7)添加代码时每按一下按键时均有一声响声

​ 退出调试环境,返回编辑模式,添加代码,完成在按键时让蜂鸣器响一声。需要短接JP12,将PC0与蜂鸣器控制电路相连。

image-20220527011733927

​ 添加的代码为

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_Init(GPIOA, &GPIO_InitStructure); /*初始化GPIOC端口推挽输出,50MHz*/
	GPIO_ResetBits(GPIOC, GPIO_Pin_0); //PC0=0,此时蜂鸣器不响

​ 新建一个Beep()函数,功能是响一声,代码如下

void Beep(void)
{
    
	GPIO_SetBits(GPIOC, GPIO_Pin_0);
	Delayms(n);
	GPIO_ResetBits(GPIOC, GPIO_Pin_0);
}

​ 在main()中修改

int main(void)
{
    
	u8 KEY = 0;
	u8 i = 0;
	u16 Pinx[4] = {
    GPIO_Pin_2, GPIO_Pin_3, GPIO_Pin_4, GPIO_Pin_7};
	SystemInit();		/* 系统初始化 */
	GPIO_KEYLED_Init(); /* GPIO初始化	*/
	while (1)
	{
    
		if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_11) == 0)
		{
    
			KEY = 1;
			Beep();
		}
		else
		{
    
			if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12) == 0)
			{
    
				KEY = 2;
				Beep();
			}
			else
			{
    
				if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0)
				{
    
					KEY = 3;
					Beep();
				}
				if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)
				{
    
					KEY = 4;
					Beep();
				}
			}
		}
		if (KEY == 0)
		{
    
			GPIO_ResetBits(GPIOD, Pinx[i]); /*  LEDi+1亮 		*/
			Delayms(n);						/*  延时n ms  	*/
			GPIO_SetBits(GPIOD, Pinx[i]);	/*  LEDi+1灭  	*/
			Delayms(n);
			i++;
			if (i >= 4)
				i = 0;
		}
		else
		{
    
			GPIO_ResetBits(GPIOD, Pinx[KEY - 1]);
			/*  LED[KEY-1]亮  */
			Delayms(n); /*  延时n ms      */
			GPIO_SetBits(GPIOD, Pinx[KEY - 1]);
			/*  LED[KEY-1]灭  */
			Delayms(n);
		}
	}
}

(8)按F7键编译并链接,然后排除所有错误,最后编译链接

(9)按CTRL+F5进入调试环境

(10)按F5功能键运行程序,查看跑马灯显示是否正确,不正确的话修改代码,继续调试到正确为止。

(11)除了初始化程序外,将上述采用固件库函数操作代码修改为寄存器操作的代码

​ 添加的代码为

GPIOD->ODR &= ~(1<<2) //让蜂鸣器不响
GPIOD->ODR |= (1<<2) //让蜂鸣器响
3.3 基于GPIO的直流电机控制实验
3.3.1 实验内容

​ 在没有按键按下时,让双色灯灭;当KEY1按下时,双色灯LED7发红光,且电机正转;当KEY2按下时双色灯LED7发绿光,且电机反转;当KEY3按下时LED7灭,电机停止运转。

3.3.2 实验步骤

(1)连接 +5V电源到开发板,将ST-LINK仿真器连接到WEEEDK嵌入式系统实验开发板的JTAG插座上,USB插头连接到PC的USB插口;

(2)复制”GPIO-MOTO”文件夹的所有内容到D盘,双击…\Project\Project.uvprojx实验工程文件,打开实验工程,找到main()函数。

(3)按F7功能键编译并链接工程。

(4)按Ctrl+F5 键或单击调试按钮,进入集成调试环境。使用F10功能键单步调试、Ctrl+F10执行到光标处、F5功能键全力执行。在全速运行时,要观察LED7和电机运行情况。

(5)分别按KEY1、KEY2、KEY3,观察LED7和电机运行情况。

​ 按KEY1:

image-20220527011925365

​ 按KEY2:

image-20220527011947406

​ 按KEY3: LED7熄灭,电机不转。

(6)返回编辑模式,修改或添加代码,完成由PE14和PE15分别控制电机的正转和反转。

​ 拔下JP5、JP6,并用杜邦线将P1中的PE14连接到JP5-3脚,让PE15连接到JP6-3脚,让PE14连接到IA,让PE15连接到IB。

image-20220527012042556

​ 修改GPIO初始化程序GPIO_MOTO_Init()

#define IA(x)   	((x) ? (GPIO_SetBits(GPIOB, GPIO_Pin_14)) : (GPIO_ResetBits(GPIOB, GPIO_Pin_14)))
#define IB(x)   	((x) ? (GPIO_SetBits(GPIOB, GPIO_Pin_15)) : (GPIO_ResetBits(GPIOB, GPIO_Pin_15)))

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);	
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	
GPIO_Init(GPIOB, &GPIO_InitStructure);  /*初始化GPIOE端口PB14=IA,PB15=IB 50MHz推挽输出*/

(7)按F7编译并链接,然后排除所有错误,最后编译链接。

(8)按Ctrl+F5进入调试环境。

(9)按F5功能键运行程序,查看程序运行是否正确。如果不正确,就修改代码,继续调试,直到正确为止。


四、实验结果分析及体会

4.1 基于GPIO的LED跑马灯实验实验结果

​ 通过添加代码成功实现让LED1、LED2、LED3、LED4、LED5轮流闪光,分别使用固件库函数方法,寄存器操作方法,以及汇编语言方法。具体的代码部分请参照上一节中的内容。

​ 实验结果图片:

image-20220527012722942 image-20220527012736710
4.2 基于GPIO的简单人机交互接口实验

​ 通过添加代码成功实现按下任意键,蜂鸣器均响一声,分别使用了固件库函数方法,寄存器操作方法。具体的代码部分请参照上一节中的内容。

​ 实验结果图片:

image-20220527012811326 image-20220527012821166
4.3 基于GPIO的直流电机控制实验

​ 这次实验成功实现了当KEY1按下时LED7发红光、电机正转,当KEY2按下时LED7发绿光、电机反转,当KEY2按下时,LED7灭、电机停止;修改GPIO初始化程序和相关程序、改变硬件的连接后也能得到相同的结果,达到了预期的实验效果。

image-20220527011925365 image-20220527011947406
4.4 实验体会

五、自我评价成绩(说明理由,等级为优、良、中、及格和不及格)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/peterwanye/article/details/125032813

智能推荐

编程语言数值型和字符型数据的概念_数值 字符-程序员宅基地

文章浏览阅读1.7k次。在编程语言中区分变量的数据类型;最简单的是数值型和字符型;以SQL为例;新建一个表如下图;name列是字符型,age列是数值型;保存表名为pp;录入如下图的数据;看这里name列输入的‘123’、'789',这些是字符型的数据;age输入的内容是数值型;显示结果如下;因为age列是数值型,输入的 009 自动变为了 9;写查询语句时字符型数据按语法规则是用引号括起来;如果如下图写也可以运行出结果;是因为sqlserver本身具有一定的智能识别功能;写比较长的SQL语句_数值 字符

Caffe2 Tutorials[0](转)-程序员宅基地

文章浏览阅读558次。Caffe2 Tutorials[0](转)https://github.com/wizardforcel/data-science-notebook/blob/master/dl/more/caffe2-tut.md本系列教程包括9个小节,对应Caffe2官网的前9个教程,第10个教程讲的是在安卓下用SqueezeNet进行物体检测,此处不再翻译。另外由于栏主不关注RNN和LS..._writer.add_scalar [enforce fail at pybind_state.cc:221] ws->hasblob(name). c

java学习笔记day09 final、多态、抽象类、接口_} } class a { public void show() { show2(); } publ-程序员宅基地

文章浏览阅读155次。java学习笔记day09思维导图final 、 多态 、 抽象类 、 接口 (都很重要)一、final二、多态多态中的成员访问特点 【P237】多态的好处 【P239]多态的弊端向上转型、向下转型 【P241】形象案例:孔子装爹多态的问题理解: class 孔子爹 { public int age = 40; public void teach() { System.out.println("讲解JavaSE"); } _} } class a { public void show() { show2(); } public void show2() { s

Qt5通信 QByteArray中文字符 出现乱码 解决方法_qbytearray中文乱码-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏9次。在写qt网口通信的过程中,遇到中文就乱码。解决方法如下:1.接收端处理中文乱码代码如下 QByteArray-> QString 中文乱码解决: #include <QTextCodec>QByteArray data= tcpSocket->readAll(); QTextCodec *tc = QTextCodec::codecForName("GBK"); QString str = tc->toUnicode(data);//str如果是中文则是中文字符_qbytearray中文乱码

JavaScript之DOM操作获取元素、事件、操作元素、节点操作_元素事件-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏15次。什么是 DOM?文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式DOM 树文档:一个页面就是一个文档,DOM 中使用 document 表示元素:页面中的所有标签都是元素,DOM 中使用 element 表示节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node._元素事件

安卓基础知识(一) 服务(Service)_安卓服务-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏7次。关于服务的一些基本知识,包括活动对接口的方法调用,接口实现,服务生命周期等知识。_安卓服务

随便推点

如何双启动Linux和Windows-程序员宅基地

文章浏览阅读252次。尽管Linux是具有广泛硬件和软件支持的出色操作系统,但现实是有时您必须使用Windows,这可能是由于关键应用程序无法在Linux下运行。 幸运的是,双重引导Windows和Linux非常简单-本文将向您展示如何使用Windows 10和Ubuntu 18.04进行设置。 在开始之前,请确保已备份计算机。 尽管双启动设置过程不是很复杂,但是仍然可能发生事故。 因此,请花点时间备份您的重要..._windows linux双启动

【flink番外篇】1、flink的23种常用算子介绍及详细示例(1)- map、flatmap和filter_flink 常用的分类和计算-程序员宅基地

文章浏览阅读1.6w次,点赞25次,收藏20次。本文主要介绍Flink 的3种常用的operator(map、flatmap和filter)及以具体可运行示例进行说明.将集合中的每个元素变成一个或多个元素,并返回扁平化之后的结果。按照指定的条件对集合中的元素进行过滤,过滤出返回true/符合条件的元素。本文主要介绍Flink 的3种常用的operator及以具体可运行示例进行说明。这是最简单的转换之一,其中输入是一个数据流,输出的也是一个数据流。下文中所有示例都是用该maven依赖,除非有特殊说明的情况。中了解更新系统的内容。中了解更新系统的内容。_flink 常用的分类和计算

(转)30 IMP-00019: row rejected due to ORACLE error 12899-程序员宅基地

文章浏览阅读590次。IMP-00019: row rejected due to ORACLE error 12899IMP-00003: ORACLE error 12899 encounteredORA-12899: value too large for column "CRM"."BK_ECS_ORDER_INFO_00413"."POSTSCRIPT" (actual: 895, maximum..._row rejected due to oracle

降低Nginx代理服务器的磁盘IO使用率,提高转发性能_nginx tcp转发 硬盘io-程序员宅基地

文章浏览阅读918次。目前很多Web的项目在部署的时候会采用Nginx做为前端的反向代理服务器,后端会部署很多业务处理服务器,通常情况下Nginx代理服务器部署的还是比较少,而且其以高效性能著称,几万的并发连接处理速度都不在话下。然而去年的时候,我们的线上系统也采用类似的部署结构,同时由于我们的业务需求,Nginx的部署环境在虚拟机上面,复用了其他虚拟机的整体磁盘,在高IO消耗的场景中,我们发现Nginx的磁盘_nginx tcp转发 硬盘io

Activiti 开发环境搭建_antdev activity-程序员宅基地

文章浏览阅读645次。Activiti 开发环境的搭建非常简单,主要分为 Activiti runtime 的安装以及 Eclipse 开发环境的配置。本文以 Windows 平台为例介绍 Activiti 5.8 版的开发环境的搭建配置过程。Activiti 的运行时程序可以从http://www.activiti.org/download.html 下载,目前最新版本为 5.8。为了配置使用 Activ_antdev activity

Vuex: 实现同级组件的简单通信_vuex的组件同级通信-程序员宅基地

文章浏览阅读2.3k次。1. Vuex 是什么?Vuex 是专门为Vue 组件化思想带来的组件间通信问题提供的解决方案,主要解决以下两个问题:多个视图依赖于同一状态 来自不同视图的行为需要变更同一状态2. 核心概念State: 可以简单理解为Vue 维持的全局变量(状态)。 Getter: 获取State 中的状态的方法,可以在取出前对数据进行二次处理。 Mutation: 是改变State 中的状态..._vuex的组件同级通信

推荐文章

热门文章

相关标签