- 基于STM32单片机的智能小车设计
UoEmacs_Lisp
单片机stm32嵌入式硬件
智能小车是一种集成了传感器和控制系统的机器人,能够自主感知环境并做出相应的动作。在本文中,我们将介绍如何使用STM32单片机设计一个基于STM32的智能小车,并提供相应的源代码。硬件设计:STM32单片机选择:选择适合的STM32单片机作为控制器。根据具体需求和性能要求选择合适的型号,如STM32F4系列、STM32F7系列等。电机驱动:选择合适的电机驱动模块,可以使用直流电机驱动模块或者步进电机
- 嵌入式--->异常,中断
arize
#嵌入式经验中断STM32F767HAL
本篇文章需要就着ARMCortex-M3Cortex-M4权威指南和STM32F7参考手册来阅读,最好有现成的Stm32F7的工程,当然其他的也可以文章目录中断中断的管理中断优先级(NVIC)中断优先级分组中断的屏蔽PRIMASK&FAULTMASKPRIMASKFAULTMASKBASEPRISTM32F7的外部中断(EXIT)使用的介绍1.使能IO时钟&基本配置2.设置中断优先级(NVIC)3
- STM32型号及其命名规则
穿越过来的全栈工程师
stm32嵌入式硬件单片机
目录一、stm32简介:stm32是st公司基于ARMCortex-M内核所设计的32位微控制器。二、stm32型号分类三、stm32命名规则四、其他简介一、stm32简介:stm32是st公司基于ARMCortex-M内核所设计的32位微控制器。二、stm32型号分类stm32主要分为4个系列:高性能MCU:STM32F2、STM32F4、STM32H7、STM32F7主流MCU:STM32G0
- 基于 STM32F7 和神经网络的实时人脸特征提取与匹配算法实现
嵌入式杂谈
neo4j
本文讨论了如何使用STM32F7和神经网络模型来实现实时人脸特征提取与匹配算法。首先介绍了STM32F7的硬件和软件特点,然后讨论了人脸特征提取和匹配算法的基本原理。接下来,我们将重点讨论如何在STM32F7上实现基于神经网络的人脸特征提取与匹配算法,并给出相应的代码示例。最后,我们评估了系统的性能,并讨论了一些优化的可能性。1.简介STM32F7是STMicroelectronics公司的一款高
- STM32H7 FDCAN兼容普通CAN使用 基于CubeMX配置
三花猫咪
STM32stm32单片机armcan网络接口
1.说明STM32大多数型号均使用的是bxCAN这个IP核,该IP核工作非常稳定,以至于从STM32F1系列到STM32F7系列均使用此IP核。下列两张图分别为STM32F1C8Tx系列和STM32F767IITx的CAN配置界面。可以看到配置界面的选项完全相同。bxCAN的配置例程非常多,应用广泛。FDCAN是2011年博世发布的改进版CAN,FDCAN的性能固然强悍,但是在实际项目中若是多个板
- 我设计了一款开源飞控,性能远超Pixhawk,运行APM固件-怒飞垂云
怒飞
飞控单片机编程语言机器学习
从2009年到现在,我从事无人机研发将近11年了,中途设计过很多飞控,有闭源的无人飞艇飞控、大型固定翼无人机飞控,也有在开源飞控Pixhawk基础上修改的飞控,如今,基于STM32F7系列单片机的飞控逐步稳定成熟,于是我基于FMUv5架构设计了一款开源飞控,先上参数:硬件参数处理器:STM32F765IIK6(CortexM7内核,216MHz主频,2MBflash,512kBRAM)加速度计:I
- STM32:TIM通道输入捕获
AllenSun-1990
C语言单片机stm32嵌入式硬件单片机
本文主要讲解如何使用TIMER通道的输入脉冲捕获功能。基于STM32F7的Timer2Channel3来进行讲解。配置时钟Timer2的时钟频率,对应APB1Timer。分频设置为96-1,这样设置每次count计数,对应的时间为1us。Counter设置为最大即可,默认不使用定时器中断。每个通道对应一个GPIO。初始化流程注意CubeMx生成代码不会开启捕捉,要调用HAL_TIM_IC_Star
- 通讯协议学习之路:IrDA协议协议理论
JASON丶LI
通讯协议网络学习物联网单片机stm32
通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)序、个人理解IrDA通讯属于红外通讯IrDA在ST系列中通常只有STM32F7系列才在硬件上得到支持IrDA为异步半双工通讯目前存在用法
- 驱动开发:STM32F7控制AD5663模拟量输出
AllenSun-1990
驱动开发stm32嵌入式硬件
AD5663是ADI公司的一款DAC模块,用以实现两路模拟量信号输出。该芯片通过SPI通信来驱动。下面讲解使用STM32F7主控芯片来控制AD5663模拟量输出的流程。配置STM32F7SPI通信管脚STM32CubeMX生成SPI驱动代码/*SPI3initfunction*/voidMX_SPI3_Init(void){/*USERCODEBEGINSPI3_Init0*//*USERCODE
- 分享STM32、FPGA、上位机测试开发环境和常用工具
青青豌豆
fpga开发stm32嵌入式硬件
把stm32、fpga开发中常用工具和开发环境分享给大家,附带下载链接,可以直接使用在项目工程中,其中包括Vivado17.4、Modelsim10.6d、Keil5、ST_Link驱动、Gvim编辑器、Timegen绘制波形插件、BusHound上位机抓包软件!Keil5的下载安装链接(包含STM32F1,STM32F4,STM32F7系列的开发包)链接:https://pan.baidu.co
- STM32F407 SPDIF(光纤音频)数字音频接口
m0_59949484
STM32嵌入式stm32单片机arm
SPDIF简介SPDIF是Sony/PhilipDigitalInteRFaceFormat的缩写,是由索尼和飞利浦公司联合开发的数字音频接口简称,分为SPDIF输入(IN)和SPDIF输出(OUT)两种,STM32F7的SPDIF接口,仅支持SPDIFIN,称之为SPDIFRX。
- 初识STM32
hwx1546
STM32学习stm32单片机
什么是STM32STM32是由意法半导体公司开发的32位微控制器的简称,STM32在当今的嵌入式处理器中非常受欢迎。ST公司旗下有几百款32位的微处理器,在ST官网有对不同的处理器做了区分。比如高性能处理器可以有STM32F2、STM32F4、STM32F7等。主流的处理器有STM32F0、STM32F1、STM32F3等。低功耗的有STM32L系列。无线网络的有STM32W系列等。STM32芯片
- STM32刷Micropython固件参考指南
perseverance52
stm32micropython
STM32刷Micropython固件指南其实刷固件和普通的程序下载烧录无多大的差异,主要是其他因数的影响导致刷固件或刷完固件无法运行的情况和相关问题。刷固件教程固件下载。目前所支持的stm32型号有这些:stm32f0,stm32f4,stm32f7,stm32g0,stm32g4,stm32h7,stm32l0,stm32l1,stm32l4,stm32wb,stm32wl。(如果你的stm3
- PLC转行嵌入式软件开发的辛路历程
西和湖平
PLC嵌入式嵌入式stm32c语言linux
我是04年毕业的,毕业后一直在做PLC方面的工作,本以为自己自动化水平已经是大神级别了。直到2019年初开始接触STM32F7开发的工作,才发现PLC工作相比MCU来讲确实简单太多。虽然之前我开发PLC时候已经使用了西门子1500和s120再加倍福,并且也都使用了st高级语言来开发,所使用的也是面向对象的思路。但是还是比不过C语言在开发上的带来的挑战和乐趣。 先说说我为什么想转嵌入式,第一原
- STM32产品命名规则,系统结构介绍,总线功能。
一杯烟火
B站自化协学习笔记stm32单片机嵌入式硬件
产品系列STM32系列芯片是由意法半导体(STMicroelectronics)公司推出的一系列32位微控制器产品。该系列产品分为以下几个系列:STM32F0系列STM32F1系列STM32F2系列STM32F3系列STM32F4系列STM32F7系列STM32G0系列STM32G4系列STM32H7系列STM32L0系列STM32L1系列STM32L4系列STM32L5系列STM32WB系列产品
- STM32单片机(二).STM32系列单片机的介绍
流水过客
单片机学习与开发stm32单片机介绍
STM32系列芯片是为要求高性能、低成本、低功耗的嵌入式应用设计的ARMCortexM0,M0+,M3,M4和M7内核,按照内核架构分成不同的产品。其主流的产品有STM32F0、STM32F1和STM32F3;超低功耗产品STM32L0、STM32L1、STM32L4以及STM32L4+;性能产品STM32F2、STM32F4、STM32F7以及STM32H7。在本文中以介绍笔者使用过的两款单片机
- 10外接触摸屏_探索者 STM32F407 开发板资料连载第三十三章 触摸屏实验
陈普照
10外接触摸屏
)实验平台:alientek阿波罗STM32F767开发板2)摘自《STM32F7开发指南(HAL库版)》关注官方微信号公众号,获取更多资料:正点原子第三十三章触摸屏实验本章,我们将介绍如何使用STM32F4来驱动触摸屏,ALIENTEK探索者STM32F4开发板本身并没有触摸屏控制器,但是它支持触摸屏,可以通过外接带触摸屏的LCD模块(比如ALIENTEKTFTLCD模块),来实现触摸屏控制。在
- STM32f746G-DISCO开发使用
星光嵌入式542830257
CortexM3/M4/M7
STM32F746G-DISCO是ST公司推出的一款针对STM32F7系列设计的开发板。可帮助您快速探索ARM®Cortex®-M7,并轻松开发自己的应用。STM32F746G-DISCO基于STM32F746NGH6设计,板载ST-Link/V2-1仿真下载器(对外仅提供SWD接口),免除您另外购买仿真器或下载器的麻烦。并且具备Arduino接口,可接入Arduino巨大生态系统中的各种扩展板(
- STM32H实现ADC采集
小盼你最萌哒
stm32
实现参考STM32F7实现ADC采集(软件触发+轮询)注意,在CubeMX中,voidSystemClock_Config(void)多了如下代码:RCC_PeriphCLKInitTypeDefPeriphClkInitStruct={0};PeriphClkInitStruct.PeriphClockSelection=RCC_PERIPHCLK_ADC|RCC_PERIPHCLK_CKPER
- STM32F7解读视频
野猪力量
嵌入式
STM32F7解读视频1:36:40https://www.bilibili.com/video/av44992891?from=search&seid=963155231768733260STM32F7在线培训7:55:59https://www.bilibili.com/video/av41603889?from=search&seid=963155231768733260感谢B站up主
- stm32f7 CAN: loop-back communication on CAN1 and CAN2
cutelily2014
stm32
StrugglingthreedaysonCANcommunication,tonsofCANprotocoltoread,butIprefercreatingnewprojectonSTM32thanreadingpapersalone,withthereferenceofSTM32Cubeandsearchedinformationon-line,Iuploadmyprojectofloop-
- 关于stm32f7系列闪存双存储区模式
weixin_40774521
笔记stm32
意法半导体网站www.st.com提供以下文档:•STM32F76xxx和STM32F77xxx基于32位MCU(RM0410)的高级ARM®•STM32微控制器系统存储器启动模式(AN2606)。1闪存单存储区和双存储区配置STM32F7系列器件的闪存大小分别为1MB和2MB。该闪存可以配置为单存储区或双存储区。1.11MB闪存组织结构图1介绍了适用于两种配置的1MB闪存主块组织:单存储区和双存
- 32位单片机STM32F7外扩QSPI SRAM芯片
英尚微电子
单片机芯片嵌入式arm
意法半导体STM32F7系列MCU采用高性能的ARMCortex-M7核心,借助ST的ARTAccelerator™和L1缓存,STM32F7微控制器可提供Cortex-M7内核的最高理论性能,而无论代码是从嵌入式闪存还是由外部存储器执行的:1082CoreMark/462DMIPS在216MHzfCPU。带有新外围设备的智能架构。可利用STM32系列丰富的外设资源来外扩SRAM芯片。STM32F
- STM32F7系列改变外部晶振时的修改点
鹤影随行
STM32
在进行STM32F7平台开发过程中,有时候需要修改外部晶振的频率。否则会导致外设频率被改变,不能以正常频率运行,典型的就是UART波特率会改变,从而导致输出乱码。这时候需要修改下面文件的几个参数,以将外部晶振从25MHz改到8MHz为例:**1)**system_stm32f7xx.c,将HSE_VALUE从25000000U改为8000000U**2)**stm32f7xx_hal_conf.h
- STM32f7 DMA2D驱动(包含自己定义的GRAM相关操作)
cp1300
CortexM3(STM32)
DMA2D可以加快图像填充,并且支持像素格式转换。/**************************************************************************************************************文件名:dma2d.c*功能:STM32F7DMA2D驱动*作者:
[email protected]*创建时间:2019-10-29*
- stm32 QUADSPI外设总结
陈虹旭
stm32F746Discovery带有一块四线16MByte的spiFlash。stm32F7带有四线spi的外设。问题一:使用MDK烧写官网的demo的时候,gui图标显示异常。原因:gui的图标数据是保存的spiflash里的,官方的默认配置,不会烧写spiflash,使用STM32官方烧写工具ST-LINKUtility直接烧写hex,就不会有问题。那么就引出下一个问题。问题二:如何配置M
- STM32单片机USMART组件原理分析理解
founderhan
STM32
正点原子,STM32F7阿波罗开发板做实验时,深入分析了一下USMART组件,现将理解和收获记录并分享一下。总结结论:串口接收是通过外部中断实现,逐字节存储到缓存中,当一帧接收完成(以结束符0x0d标识),设置标志,例程中可以参考USART1_IRQHandler中断处理接口。USMART的初始化接口usmart_init中,初始化了硬件定时器(例程中是TIM4),定时器频率设置为10kHz,有两
- 32位单片机STM32F7外扩QSPI SRAM芯片
英尚微电子
单片机芯片嵌入式arm
意法半导体STM32F7系列MCU采用高性能的ARMCortex-M7核心,借助ST的ARTAccelerator™和L1缓存,STM32F7微控制器可提供Cortex-M7内核的最高理论性能,而无论代码是从嵌入式闪存还是由外部存储器执行的:1082CoreMark/462DMIPS在216MHzfCPU。带有新外围设备的智能架构。可利用STM32系列丰富的外设资源来外扩SRAM芯片。STM32F
- STM32F7通过QSPI驱动W25Q256芯片
异想天开168
Pythonmicropython人工智能
https://blog.csdn.net/ningjianwen/article/details/96477565目录一使用STM32CubeMX配置QSPI接口二W25Q256初始化三W25Q256读写驱动
- 32位单片机STM32F7外扩QSPI SRAM芯片
EVERSPIN
MCU
意法半导体STM32F7系列MCU采用高性能的ARMCortex-M7核心,借助ST的ARTAccelerator™和L1缓存,STM32F7微控制器可提供Cortex-M7内核的最高理论性能,而无论代码是从嵌入式闪存还是由外部存储器执行的:1082CoreMark/462DMIPS在216MHzfCPU。带有新外围设备的智能架构。可利用STM32系列丰富的外设资源来外扩SRAM芯片。STM32F
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include