程序代码写作规范(草案,周立功,简单)

程序代码写作规范(草案,周立功,简单)
程序代码写作规范(草案,周立功,简单)

程序代码写作规范(草案)(版本:1.0)

●基本要求

(1)程序结构清析,简单易懂,单个函数的程序行数不得超过100行。

(2)打算干什么,要简单,直接了当,代码精简,避免垃圾程序。

(3)尽量使用公共函数,c51的标准库函数谨慎使用。

(4)不要随意定义全局变量,尽量使用局部变量。

(5)使用括号以避免二义性。

(6)非万不得已不要使用浮点运算。一般的小数运算可以使用定点数实现。

●可读性要求

(1)可读性第一,效率第二。

(2)保持注释与代码完全一致。

(3)每个源程序文件,都有文件头说明,说明规格见规范。

(4)每个函数,都有函数头说明,说明规格见规范。

(5)主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。

(6)常量定义(define)有相应说明。

(7)处理过程的每个阶段都有相关注释说明。

(8)在典型算法前都有注释。

(9)利用缩进来显示程序的逻辑结构,缩进量一致并以4个空格为单位。

(10)循环、分支层次不要超过五层。

(11)注释可以与语句在同一行,也可以在上行。

(12)空行和空白字符也是一种特殊注释。

(13)一目了然的语句不加注释。

(14)注释的作用范围可以为:定义、引用、条件分支以及一段代码。

●结构化要求

(1)禁止出现两条等价的支路。

(2)非必要不要使用goto语句。goto一般用于从内循环直接跳到循环外部、检测到错误直接跳到错误处理程序。影响可读性时禁止使用goto语句。

(3)用if 语句来强调只执行两组语句中的一组。

(4)用case 实现多路分支。

(5)避免从循环引出多个出口。

(6)尽量减少函数的出口。

(7)避免不必要的分支。

(8)不要轻易用条件分支去替换逻辑表达式。

●正确性与容错性要求

(1)程序首先是正确,其次是优美。

(2)无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。

(3)改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。

(4)所有变量在调用前必须被初始化。

(5)对所有的用户输入,必须进行合法性检查。

(6)不要比较浮点数的相等,如:10.0 * 0.1 == 1.0 ,不可靠。

(7)函数对接受的参数应该进行合法性检查。

(8)单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。

(9)尽量不要使用==作为判断条件,应该用>=,或<=替代。

●可重用性要求

(1)所有c语言程序文件只包含一个头文件config.h,在config.h中包含其它头文件。

(2)重复使用的完成相对独立功能的算法或代码应编入一个文件,并且使用头文件

(3)设定一些与硬件相关的参数,这些参数在config.h中定义,模块自己的头文件仅说明如何设定这些参数。

(4)公共代码应考虑OO思想,减少外界联系,考虑独立性或封装性。

(5)尽量少使用与编译器相关的特性。

(6)取变量占用内存长度用"sizeof(变量类型)"而不用常量。

●命名规则

?变量命名

(1)命名必须具有一定的实际意义,要“望文知义”。

(2)根据变量的作用域决定名字的长短。作用域越大,名字越长。在整个程序中都要使用的变量就要长一些;而局部变量就可以短一些。

(3)变量名中每一个单词首字母大以分隔单词。一些习惯单词如OK可以全部大写。

(4)局部变量中可采用如下几个通用变量:Temp,N,i,j(一般用于循环变量)。

?常量命名和宏定义

(1)常量和宏定义必须具有一定的实际意义。

(2)局部使用的常量和宏定义在#include和函数定义之间。

(3)常量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连接,每一条定义的右侧必须有一简单的注释,说明其作用。

?函数命名

函数命名一般使用动名或动宾结构,要有实际意义。变量名中每一个单词首字母大写。

?结构体命名

结构体类型命名必须全部用大写字母,原则上前面以下划线开始;结构体变量命名必须用大小写字母组合,必要时可用下划线间隔。数据定义需注明其用途。

●注释

(1)原则上注释要求使用中文。

(2)文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍等,复杂的算法需要加上流程说明。

(3)函数注释包括:输入、输出、函数描述、流程处理、全局变量、调用样例等,复杂的函数需要加上变量用途说明。

(4)程序中注释包括:修改时间和作者、方便理解的注释等。

引用一文件开头的注释模板

/*************************************Copyright*********************************

** 东华理工大学电子与机械工程学院

** 3 + 1 班

** 05届

**

** https://www.360docs.net/doc/529030965.html,

**

**--------------文件信息--------------------------------------------------------------------------------

**文件名:

**创建人:

**最后修改日期:

**描述:

**

**--------------历史版本信息----------------------------------------------------------------------------

** 创建人:

** 版本:

** 日期:

** 描述:

**

**------------------------------------------------------------------------------------------------------

** 修改人:

** 版本:

** 日期:

** 描述:

**

**--------------当前版本修订------------------------------------------------------------------------------

** 修改人:

** 日期:

** 描述:

**

**------------------------------------------------------------------------------------------------------

******************************************************************************/

引用二函数开头的注释模板

/******************************************************************************

** 函数名:

** 功能描述:

** 输入: a---

**b---

**c---

** 输出: x 为1, 表示...

**x 为0, 表示...

** 全局变量:

** 调用模块:

** 作者:

** 日期:

**-------------------------------------------------------------------------------------------------------

** 修改人:

** 日期:

**------------------------------------------------------------------------------------------------------

******************************************************************************/

程序

(1)程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,尽量不采用递归模式。

(2)编写程序时,亦必须想好测试的方法,换句话说,”单元测试”的测试方案应在程

序编写时一并拟好。

(3)注释一定要与程序一致。

(4)版本封存以后的修改一定要将老语句用/* */ 封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。在注释中注明封闭代码的修改时间和原因。

(5)程序中每个block 的开头”{" 及"}”必须对齐,嵌套的block 每进一套,缩进4个空格。block类型包括if、for、while、do等关键字引出的。

(6)对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能

(7)循环、分支代码,判断条件与执行代码不得在同一行上。

(8)指针的定义,* 号紧接变量名之前。例:int*pnsize;

(9)else if 必须写在一行。

●与‘{’、‘}’有关的各项规定

(1)‘{’、‘}’应独占一行。在该行内可有注释。

(2)‘{’必须另起一行,‘{’之后的代码必须缩进4个空格。‘{’与‘}’必须在同一列上。

(3)在循环、分支之后若只有一行代码,虽然可省略‘{’、‘}’,但不推荐这么做。若省略后可能引起歧义,则必须加上‘{’、‘}’。

●与空格有关的各项规定

(1)在所有两目、三目运算符的两边都必须有空格。在单目运算符两端不必空格。但在‘—>’、‘::’、‘.’、‘[’、‘]’等运算符前后,及‘&’(取地址)、‘*’(取值)等运算符之后不得有空格。

(2)for、while、if 等关键词之后应有1个空格,再接‘(’,之后无空格;在结尾的‘)’前不得有空格。

(3)调用函数、宏时,‘(’、‘)’前后不得有空格。

(4)类型强制转换时,‘(’‘)’前后不得有空格

●与缩进有关的各项规定

(1)缩进以4个空格为单位。

(2)下列情况,代码缩进一个单位:

●if、else、for、while、do 等之后的代码。

●一行之内写不下,折行之后的代码,应在合理的位置进行折行。若有+ - * / 等

运算符,则运算符应在上一行末尾,而不应在下一行的行首。

●针对51系列补充

(1)推荐使用编程模式:ram小模式,rom:小模式。

(2)尽量使用无符号数,尽量使用unsigned char 数。

(3)尽量不使用基本输入输出库函数。

(4)尽量不要使用一般指针。

(5)判断尽量使用>=和<。

(6)尽量避免使用程序延时。

(7)所有循环避免可能出现的死讯循环,例:while(TI==0) TR1=1;(假定串行口使用定时器1)。

(8)中断服务程序尽可能短。

(9)禁止使用递归模式.

(10)一般应用禁止使用浮点运算。

(11)函数参数一般应该少于3个。

●针对汇编的补充

(1)尽量使用宏汇编,不要使用小汇编。

(2)使用小汇编时不要使用equ分配变量,要使用data、idata、xdata、bit等分配变量。

(3)混合编程时,尽量先使用c写一个同名函数,然后再生成汇编文件,在这个汇编文件的基础上编写以避免错误。

周立功-ARM嵌入式系统基础教程课后习题答案11

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条 32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

周立功ARM调试心得

周立功ARM调试心得 2008-9-11调试"SmartARM2200 V2.02实验箱"心得: 1、在调试"E:\htwang\smart2200v201\ARM嵌入式系统实验教程(二)\开发板出厂编程程序\液晶显示程序\LCM_Disp"的程序时,想使用外部RAM进行仿真调试,在将ADS1.2中的"DebugInExram Settings->Arm Linker -> Output -> Equivalent Command Line"的"-info totals -entry 0x8100000 -scatter .\src\mem_b.scf"改为"-info totals -entry 0x80000000 -scatter .\src\mem_b.scf"时,编译时总是出现错误信息"Error: L6206E: Entry point(0x80000000) lies outside the images",经梁工(宝琼)提示:"这是由于程序空间超出范围,需要改一个参数。" 打开关于外部RAM调试的分散加载文件"mem_b.scf"发现所有的程序调试地址都是指向0x81000000的Flash地址空间,而不是0x80000000的RAM地址空间(此时硬件电路板上的短路片RAM接CS0、Flash接CS1),后把0x81******全部改为0x80******,编译调试都正常。 2、不正常现象:在调试"SmartARM2200 V2.02"实验箱时,每次实验箱断电或实验箱上复位按键后,H-Flash的Load操作都要重新执行一遍(或者简单一点:只要在H-Flash -> Programming -> Check 按钮上点击一下也可以),否则下载程序后实验箱运行不了。 (先是在选用DebugInExram出现这种情况,后选用RelOutChip则不会出现这种情况。) <2008-9-12> 另外,每次重新启动H-JTAG和H-Flash后,都要将H-Flash重新设一遍。 3、现象:在调试GB_Disp工程时,程序无法正常运行。 分析:当调试的程序中包含中断时,分散加载文件"mem_*.scf"的"IRAM "项设置不能从0x40000000开始,而应该从0x40000040开始(给中断向量留下空间),否则程序无法调试。(先是在选用RelOutChip出现这种情况,后选用DebugInExram也出现这种情况。) < 2008-9-12 htwang注: 上面的解释并不正确,因为在调试其他中断实验的过程中,配置文件"mem_*.scf"的"IRAM "项设置成从0x40000000开始也可以正常运行。(估计可能是存储器映射的问题) 打开GB_Disp工程"target.c"文件,果然发现在函数"void TargetResetInit(void)"中将存储器映射寄存器初始化成"MEMMAP =0x2",这是选用的用户RAM模式,中断向量也从静态RAM重新映射。如果想映射到用户外部存储器模式,应该改为"MEMMAP =0x3"(见《ARM嵌入式系统基础教程》P166 或《深入浅出ARM7-LPC2200》P119)。按此方式更改后,实际调试也正常。 >

周立功致远电子CAN总线产品技术支持FAQ全集

广州致远电子股份有限公司 类别 内容 关键词 CAN-bus 总线产品 摘 要 介绍CAN-bus 总线产品使用的疑难问题

修订历史 版本日期原因V1.00 2015/01/01 创建文档

目录 1. USB接口CAN卡 (1) 1.1软件问题 (1) 1.1.1USBCAN板卡的驱动安装不成功要如何处理? (1) 1.1.2CANtest测试软件CAN的数据帧怎样能分类固定查看CAN报文数据? (1) 1.1.3使用CANtest软件发送数据时,总是提示发送数失败? (3) 1.1.4电脑进入休眠之后唤醒,CANtest不需重新启动就能驱动CAN卡? (3) 1.1.5使用CANtest软件启动通道时,提示启动通道失败或初始化通道失败。 (3) 1.2原理问题 (3) 1.2.1如何计算并选择自定义波特率的配置数值? (3) 1.2.2如何识别多个同型号USBCAN卡在一台PC机上所分配的设备索引号? .. 4 1.2.3CAN总线为什么要有两个120欧姆的终端电阻? (6) 1.2.4CAN总线错误状态的种类有哪些? (6) 1.2.5USBCAN-II是否支持Win8平板上的OTG接口? (6) 2. PCI接口CAN卡 (7) 2.1软件问题 (7) 2.1.1使用CANtest软件发送数据时,总是提示发送数失败? (7) 2.1.2电脑进入休眠之后唤醒,CANtest不需重新启动就能驱动CAN卡? (7) 2.1.3使用CANtest软件启动通道时,提示启动通道失败或初始化通道失败。 (7) 2.2原理问题 (7) 2.2.1如何计算并选择自定义波特率的配置数值? (7) 2.2.2为什么PCI-5110 CAN板卡无法使用? (8) 2.2.3PCI-9820I的DB9接头内的管脚定义是怎样的? (9) 2.2.4系统中插入多张相同的PCI CAN板卡后,如何确定各各设备的索引号?.. 9 2.2.5CAN总线为什么要有两个120欧姆的终端电阻? (9) 2.2.6CAN总线错误状态的种类有哪些? (9) 2.2.7PCI-9820I的linux系统驱动为什么无法使用? (10) 3. CPCI接口CAN卡 (11) 3.1软件问题 (11) 3.1.1使用CANtest软件发送数据时,总是提示发送数失败? (11) 3.1.2电脑进入休眠之后唤醒,CANtest不需重新启动就能驱动CAN卡? (11) 3.2原理问题 (11) 3.2.1如何计算并选择自定义波特率的配置数值? (11) 3.2.2CAN总线为什么要有两个120欧姆的终端电阻? (12) 3.2.3CAN总线错误状态的种类有哪些? (12) 4. PCIe接口CAN卡 (14) 4.1软件问题 (14) 4.1.1使用CANtest软件发送数据时,总是提示发送数失败? (14) 4.1.2电脑进入休眠之后唤醒,CANtest不需重新启动就能驱动CAN卡? (14) 4.2原理问题 (14) 4.2.1如何计算并选择自定义波特率的配置数值? (14) 4.2.2CAN总线为什么要有两个120欧姆的终端电阻? (15)

应聘硬件工程师或研发类工作资料集锦_硬件工程师_电子工程师_嵌入式工程师_单片机_笔试题目_面试题目

用一个宏定义FIND求一个结构体CTYPE里某个变量CNUM相对了CTYPE的编移量。 如:stuct student { int a; char b[20]; double ccc; } 则: FIND(student,a); //等于0 FIND(student,b);//等于4 二楼的可以。 #define FIND(type,member) (int)(&( ((type*)0)->member) ) struct student { int a; char b[20]; double ccc; }; int main(int argc,char* argv[]) { int i=FIND(student,a); //等于0 i=FIND(student,b);//等于4 return 0; } 调试结果是对的。 题目出得很好: 其实就是考下这个宏offsetof ,定义在文件stddef.h 中. #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) TYPE是某struct的类型0是一个假想TYPE类型struct,MEMBER是该struct中的一个成员. 由于该struct的基地址为0, MEMBER的地址就是该成员相对与struct头地址的偏移量. 再往深处,接触过Linux Kernel的会知道这个宏container_of,就嵌套了宏offsetof ,其在Linux Kernel中的应用非常广泛,它用于获得某结构中某成员的入口地址. 1.运放求放大倍数的 2.三极管基础知识(放大区,截至区,饱和区) 3.并联RC变换成串联RC 4.运放求反馈的 5.单片机和74hc595硬件连接和编程 6。数据结构-----队列,建立一个队列,写数,读数。 一简答题

zlg7289

程序名称: 数码管显示与键盘管理芯片ZLG7289的标准80C51驱动程序(C51) 文件名: ZLG7289.h 作者: 广州周立功单片机发展有限公司王大星,2005年6月 说明: 本程序已经调试通过 程序的可移植性很好,仅做少量修改就可以直接包含使用 程序占用资源少,仅使用4根必须I/O口线,不占用定时器等其它资源 所有全局性的标识符都以ZLG7289_开头,不必担心命名冲突问题 程序结构清晰,思路明确,结合ZLG7289的数据手册很容易理解 用法: 1、重新定义I/O接口 2、如果CPU的主频比较高,则要适当调整延时,详见ZLG7289_Delay()函数 3、在用户程序中包含本头文件 4、在main()函数的开始处添加初始化函数ZLG7289_Init() 5、以后在程序中可以直接使用ZLG7289的用户指令集 6、读取键盘扫描码使用函数ZLG7289_Key(),查询方式、中断方式皆可 用户指令集汇总: 复位指令:void ZLG7289_Reset(); 测试指令:void ZLG7289_Test(); 左移指令:void ZLG7289_SHL(); 右移指令:void ZLG7289_SHR(); 循环左移:void ZLG7289_ROL(); 循环右移:void ZLG7289_ROR(); 下载数据:void ZLG7289_Download(char mod,char addr,bit dp,char dat); 闪烁控制:void ZLG7289_Flash(char dat); 消隐控制:void ZLG7289_Hide(char dat); 段点亮控制:void ZLG7289_SegOn(char dat); 段关闭控制:void ZLG7289_SegOff(char dat); 读键盘数据指令:char ZLG7289_Key(); */ #ifndef _ZLG7289_H_ #define _ZLG7289_H_ #include #include //定义I/O接口 sbit ZLG7289_pinCS = P1^0; //片选信号,低电平有效 sbit ZLG7289_pinCLK = P1^1; //时钟信号:上升沿有效 sbit ZLG7289_pinDIO = P1^2; //数据信号:双向 sbit ZLG7289_pinKEY = P3^2; //键盘中断请求信号,低电平有效

嵌入式系统求职回忆录

一、引言 一年前的这个时候,我开始了人生的真正求职历程。在这个过程中,有幸参加过广嵌、迈瑞、华为、智光、周立功、理邦等几个比较大笔试和面试。虽然大部分都失败了,但是我觉得正是这一次次的失败认我真正认识自己的不足,积累经验,成长进步,为最后的成功打下坚实的基础。求职是一个展现个人综合实力的过程,除了需要专业技能之外,还需要有一定的策略。同时这也是一个逐步提高和适应的过程。就像一支球队参加真正比赛之前都要经过系列的热身赛,熟悉对手的同时也在发现自己的不足。那时候我经看看别人的面经,现在我觉得把自己的体会跟大家分享也是一件很愉快的事情。特别在这个找工作的时刻,也希望我以前总结的求职经历能给大家一点借鉴和帮助哦…… 二、广嵌面试 这是我人生的第一次正式面试,挺紧张的。广嵌在广州科学城那边,有点偏了,人比较少。首先是做题,没有什么时间限制,做完就交。题目不多,8道好像,全是问答和编程题,没得蒙。主要考了C语音、数据结构、操作系统、编译原理、内存分配和链表的一些东西。虽然是很基础的东西,但是平时不注意不一定做得出来。题目做完了,HR拿去给技术总监看,过了一会来告诉我,技术总监对我的答题较满意,叫我去会议室进行面试。技术总监来是一个比较年轻的工程师,谈吐之间感觉巨牛。我首先介绍了项目的情况,可能是第一次吧,讲的比较细,他听了一会感觉出我实际做了点东西,懒得听我说,直接叫我停止,开始问了我几个问题。看起来不是什么技术难题,但却不好答。我印象比较深刻的是下面三个题目: 1、在学校实验室中编程做项目和实际编程做项目有什么不同,需要注意什么? 2、如果在公司中碰到了行政问题和技术难题应该怎么样处理? 3、你的职业规划或者是你未来几年打算怎么样? 这些的回答见仁见智。我没想到他会问这些问题,开始愣了几秒中,脑子一下转不过来。不过我对自己的回答比较满意,可能技术总监也认同我的回答。接着他问我做TCP/IP方面的东西怎么样。我说没有怎么样做过网络底层的东西,主要做的应用层上面的套接字编程。然后他问我在windows和linux的驱动层和应用层做过什么东西,我就讲相关的项目和工作稍稍说了一说。然后他给我介绍了进来公司要做的一些工作,主要是做TCP/IP应用层的测试验证工作。后面也没什么问了。他出去后,HR进来和我谈了谈公司的具体情况和福利方面的东西。大概三个小时,我的第一次面试就这样结束了。 三、迈瑞笔试 收到迈瑞的笔试其实不是很意外,但是比较突然,没有想到当天宣讲完第二天下午就开始笔试,一点准备的机会都没有,去开开眼界吧。迈瑞通知我去考软件工程师,但我C++其实

周立功公司笔试题

周立功公司笔试题(C/C++软件方面) 作者:admin 来源:本站原创点击数:322 更新时间:2007年09月26日周立功公司笔试题(C/C++软件方面) 今天早上参加了广州周立功公司的笔试,一共好像有170多个人参加, 笔试有好几套题目,让各个同学来选择。 1 。C/C++软件开发类 2 。FPGA应用 3.硬件类分成两套题 (1)自动化类的硬件(涉及马达的控制这些题目) (2)电子。通信类的硬件(单片机,放大器等题目) 其中EGPA的报考人数最少。。。呵呵。。如果喜欢这个的同学。以后机会挺大的。。 电子。通信类硬件类的报考人数最多。。。以后大家可要努力地脱颖而出。 好了。。说下我报考的C++的题。。其实5道题里面有4道是考C语言的基础。 第1道题: C语言的题目。 123456789的二进制是“111010110111100110100010101” 写一个函数算出里面有多少个0 第2道题: C语言的题目。 N个无序的整数(无重复的)。。找出第K大的整数 第3道题 C++的题目 堆和栈的区别?他们各自的运行方式是什么?

静态变量,全局变量,局部变量的含义是什么? SendMessage和PostMessage的区别是什么? 第4道题 数据结构的题目 给出一个数据结构,要求算出树的高度 第5道题 C语言与处理器的题目 大概意思:用C实现测试CPU字长的内存布局 bigendian or littleendian 答案:WORD *pw; 跟BYTE *pb; 谈谈今天的周立功面试 在接受了下午2:30的笔试之后,傍晚6:10分左右,我们第三小组在8101接受了周立功单片机招聘小组的面试。 先来说说下午的笔试.其实,说句实话,要是你对基本的模点数电,单片机编程及硬件电路还有C语言有点了解的话,这份试卷真的很简单。好像模电有四个题目,第一个是给一个继电器电路,然后要你说出并接在继电器上的那个二极管是怎么回事。要是做过类似电路的人就很清楚,就是为了防止反向电动势对电路的干扰。第二个是问你一个阻容式复位电路的复位方式及复位原理。在电阻上并接了一个二极管,要你说出这个二极管的作用,要是你做过这方面的东西或者看过过单片机可靠性方面的文章,那你应该会知道的。第三个是要你画出射随器和同相比例放大器。第三个是给你一个集成运放电路要你写放大倍数的表达式。数电考的就是给你一个与非门电路,要你写出其最简表达式,然后给出一个波形图,要你画出其输出波形图。

《周立功Quick51实验指导书》

目录 第1章Quick51硬件结构 (1) 1.1 SmartSOPC与Quick51 (1) 1.2 Quick51特性 (1) 1.3 Quick51电路结构 (2) 第2章Keil C51和Quick51入门 (4) 2.1 Keil C51简介 (4) 2.2 Keil C51的安装 (4) 2.3 建立第1个Keil C51程序 (4) 2.4 安装Flash Magic软件 (9) 2.5 以ISP下载方式运行程序 (9) 2.6 以硬件在线仿真的方式调试程序 (10) 2.7 Keil C51仿真调试的若干基本操作 (12) 2.7.1 源程序窗口 (12) 2.7.2 寄存器窗口 (12) 2.7.3 汇编窗口 (12) 2.7.4 存储器窗口 (12) 2.7.5 程序的运行控制 (13) 2.7.6 变量观察和堆栈窗口 (13) 2.7.7 外围设备访问 (14) 2.8 Quick51在线仿真芯片占用的系统资源 (14)

第1章 Quick51硬件结构 1.1 SmartSOPC与Quick51 SmartSOPC教学实验开发平台集众多功能于一体,是SOPC、DSP、EDA、ARM、ARM7 SOC以及8051教学实验、科研开发的最佳选择。开发平台采用“主板+核心板”的模式,更换不同的核心板即可实验不同平台的功能。 Quick51正是跟SmartSOPC相配套的8051单片机核心板,实物照片见图 1.1。Quick51是一款自由的、开放全部系统资源的单片机实验板。单片机芯片采用Philips最新推出的拥有64KB Flash的增强型8052内核单片机P89LV51RD2,工作电压3.3V(3V逻辑是大趋势)。Quick51与SmartSOPC配合,可以做各种单片机教学实验,如LED点阵扫描显示、键盘检测、动态数码管、液晶屏、电机驱动、I2C总线、红外收发、蜂鸣器、数字温度计、电子钟,等等。 图 1.1 Quick51照片 1.2 Quick51特性 采用Philips半导体新型单片机P89LV51RD2,增强型Intel 8052 CPU内核。具有许多增强功能,如内置64KB用户程序Flash,8KB引导Flash(用来支持ISP和IAP 功能),1KB片内静态RAM,双倍速模式,双DPTR,4个中断优先级,进入掉电 模式后外部中断可唤醒(8052只有复位,不方便),硬件SPI,增强型UART,等等。

SD卡的读取(SPI)

SPI模式下MCU对SD卡的控制及操作命令一、前言 SD 卡有两个可选的通讯协议:SD 模式和 SPI模式 SD 模式是SD 卡标准的读写方式,但是在选用SD 模式时,往往需要选择带有SD 卡控制器接口的 MCU,或者必须加入额外的SD卡控制单元以支持SD 卡的读写然而,大多数MCU都没有集成SD 卡控制器接口,若选用SD 模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用 SPI模式可以说是一种最佳的解决方案因为在 SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成 有现成的SPI接口电路,采用 SPI模式对 SD卡进行读写操作可大大简化硬件电路的设计 二、硬件电路实现 以NXP的LPC2210 ARM7MCU为例,下图是周立功开发的实现板电路 这里,将LPC2210MCU的SPI0用于SD卡的控制和数据读写。对SPI0的两个数据线加了上拉电阻以便于MMC卡兼容。 卡供电采用了可控方式,通过GPIO口控制MOS管对其进行供电。 卡检测电路也使用GPIO口实现。通过读GPIO口数据,检查卡是否写保护和完全插入。 具体内容可以参考周立功的说明书,百度文库里边有 三、SD卡物理接口 我们看到的SD卡一包如下所示,包含9个引脚和一个写保护开关:

其引脚定义如下: 注:1. S:电源;I:输入;O:推挽输出;PP:推挽I/O。 2. 扩展的DAT线(DAT1 ~ DAT3)在上电后处于输入状态。它们在执行 SET_BUS_WIDTH命令后作为DAT线操作。当不使用DAT1 ~ DAT3 线时,主机应使自己的DAT1~DAT3线处于输入模式。这样定义是为了与MMC卡保持兼容。 3. 上电后,这条线为带50K?上拉电阻的输入线(可以用于检测卡是否存在或选择 SPI 模式)。用户可以在正常的数据传输中用 SET_CLR_CARD_DETECT(ACMD42)命令断开上拉电阻的连接。MMC卡的该引脚在SD模式下为保留引脚,在SD模式下无任何作用。 4. MMC卡在SD模式下为:I/O/PP/OD。 5. MMC卡在SPI模式下为:I/PP。 四、对SD卡的控制流程 1、SD卡的SPI工作模式

LPC1700系列Cortex-M3_ZLG1

集成电路内置音频总线(I S)
LPC1700系列Cortex-M3微控制器
2



1 2 3 4
I2S简介 I2S工作原理 I2S基本操作 I2S之DMA

I S功能应用
集成电路内置音频总线(I2S——Inter IC Sound)是嵌入式系统领域 常用的音频总线之一,为数字音频应用提供了一种标准的数字通信接口。 I2S接口可适用于多种场合,例如:数字电视、功放、迷你播放器、笔记 本、CD机、视频设备等 。
2

I S引脚描述
I2S是一种3线串行总线。含有1根数据线、1根时钟线和1根字选择信 号线。
2 II2S发送器 S发送器 TX_SCK
2
时钟线 字选择信号线 数据线
2 II2S接收器 S接收器 RX_SCK
TX_WS
RX_WS
TX_SDA
RX_SDA
基本的I2S系统具有一个主机和一个从机。 I2S提供了彼此独立的发送和接 收通道,每个通道都可配置为主机或从机,而且无论在主机还是从机模式 下均可独立控制。

I S通道操作模式
SCK:串行时钟 发送器 (主机) WS:字选择 SDA:串行数据 接收器 (从机)
2
三 种 通 道 操 作 模 式
SCK:串行时钟 发送器 (从机) WS:字选择 SDA:串行数据 接收器 (主机)
控制器 (主机)
SCK:串行时钟 发送器 (从机) WS:字选择 SDA:串行数据 接收器 (从机)

周立功ARM嵌入式系统 课后习题

第1章思考与练习 1、举出3个书本中未提到的嵌入式系统的例子 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 答:以应用为中心,计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3 、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP处理器(Embedded Digital Signal Processor, EDSP 嵌入式片上系统(System On Chip) 4 、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 答:是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1 、ARM7TDMI 中的T 、D 、M 、I 的含义是什么? 答:64 位乘法指令(带M 后缀的)、支持片上调试(带 D 后缀的)、高密度16 位的Thumb指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2 、ARM7TDMI 采用几级流水线?使用何种存储器编址方式? 答:三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条32 位总线。 3 、ARM 处理器模式和ARM 处理器状态有何区别? 答:处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM状态32位,这种状态下执行的是字方式的ARM指令 Thumb状态16位,这种状态下执行半字节方式的Thumb指令 模式: 用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式。 5、PC和LR分别使用哪个寄存器? 答:PC使用R15寄存器,LR使用R14寄存器 6、R13寄存器的通用功能是什么? 答:堆栈指针 7、CPSR寄存器中哪些位用来定义处理器状态? 答:位31~28:N、Z、C、V,条件代码标志位;27~8:保留位;T、M4~0,控制标志位8、描述一下如何禁止IRQ和FIQ的中断? 答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断时能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。 9、定义R0=0x12345678,假设使用存储指令将R0的值存放在0x4000单元中。如果存储器格

ARM嵌入式系统基础教程课后习题答案及练习题__周立功

一 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(Von Neumann )结构,指令和数据共用一条32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令 Thumb 状态16 位,这种状态下执行半字方式的Thumb 指令 模式: 用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。5、PC和LR分别使用哪个寄存器? PC使用R15寄存器,LR使用R14寄存器 6、R13寄存器的通用功能是什么? 堆栈 第四章 1、基础知识 (1)ARM7TDMI(-S)有几种寻址方式?LOR R1,[R0,#0x08]属于哪种寻址方式?

单片机应用实验指导书-实验1

实验部分 实验一Keil集成开发环境练习和编程调试 实验名称:Keil集成开发环境练习和编程调试学时安排:2学时 实验类别:综合性实验要求:必做  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的和任务 1 熟悉Keil C51 集成开发环境的使用方法; 2 熟悉Keil C51 集成开发环境仿真条件下调试功能的使用。 二、实验原理介绍 Keil 集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。 在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。 三、实验设备介绍 1 IBM PC 机一台 四、实验内容和步骤 1 ①建立工程文件。双击桌面的Keil快捷图标,进入Keil集成开发环境。点击工具栏的Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新μVision2工程,为工程命名(如MyProject-1.uv2);并选择将要使用的器件的型号(Philips公司P80/87C52X2 CPU)。 ②编写程序,加入到刚才建立工程文件中。 在File下采用New命令以建立新文件,单击Fil e→Save as,在弹出对话框的“文件名”栏编辑框中输入欲使用的文件名和正确扩展名(如Test1.asm),然后单击“保存”按钮;这样事先保存空白待编辑文件的好处是:Keil能自动识别关键字并标注不同颜色,提高编程效率。 在Project Workspace窗口内,选中Source Group1后点击鼠标右键,在弹出菜单中选择Add files to Group “Source Group1”(向工程中添加源程序文件)命令,选择刚创建的文件,单击Add命令即可把源程序文件添加到项目中。之后就可以编写程序内容,并注意及时保存文件。参考程序如下: ORG 0000H LJMP MAIN

课题_ARM嵌入式系统基础教程(周立功第2版).

ARM嵌入式系统基础教程(周立功第2版). 第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了 32 位 CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么?

硬件开发笔试题

做硬件开发的一些笔试题 《东软集团》(IC设计工程师) 中国最大的软件外包企业,是从东北大学走出来的企业。主要业务为数字医疗器械(他们做出了中国第一台CT),国内管理软件及计费软件,对日及欧美的软件外包。这里的培训机制比较完善,适合新人,但不足之处就是工资水平比较低。 1.F=A!BC+BD+A!CD!,用卡诺图化简。 2.用74161芯片组一个模11计数器。 3.二进制,十六进制,八进制转换。 4.一个D触发器和JK触发器级联,画出波形图。 5.VerilogHDL代码补写,内容是3-8译码器。 6.用VHDL或VerilogHDL编写一个8分频器。 题目比较基础,基本不用复习。但面试比较详细,很看中个人的项目实践经验(每学期的课程设计根本不算)。 《福建星网锐捷》(硬件工程师) 福建省最大的IT企业,国有。前身为N年前著名的实达集团。主要从事交换机,路由器的设计与生产,下面的锐捷网络为其子公司。此公司的产品在国内的市场占有率为第二。从和HR的交流中感到此公司人际环境宽松,也比较照顾福建本地的应聘者。虽然婉拒了HR的邀请,但不失为一个不错的公司。 1.负反馈的类型。 2.给电路图,求干路瞬时电压值。 3.一个74芯片与其他逻辑门组的系统,求各端口的寻址范围。 4.给电路图,求门限电压和门限宽度。 5.二极管,三极管组的简单电路,球输出与输入的逻辑关系。 6.电路基础题,求支路电流。 7.单片机系统给定寻址范围(比如2M),并告诉有20根地址总线,问有多少根地址总线(具体记不太清,反正微机原理上有一章有这样的题)。 8.给出了串口RS232的一个原理图(但不知是否正确),并给出发送和接受1、0的条件,分析是否能正常工作。电路只要由三极管和上拉电阻组成,通过分析三极管导通的方向可以判断出来。 9.一个超级复杂的电路图,让分析其反馈环路,并简述振荡电路的原理和过程。 10.英文翻译,大概内容是一个接口器件的介绍及设定。(必做,不做当作放弃) 星网和下面锐捷的题目都比较难,特别是锐捷网络,题量大而且全,可谓变态,超过了期末考试的水平。但也能看出他们很注重基础,必须认真复习。我看到了一些其他人的试卷,基本都是30多分,甚至一个硕士也只有40多分。寒一下~~ 《福建星网锐捷》(软件工程师) 1.中断时间的概念。 2.见一维数据记录按负数在前,正数在后的顺序排列,要求时间复杂度为O(n)。 3.Voltaile的用法。

ZLG深度解析人脸识别核心技术

ZLG深度解析人脸识别核心技术 随着大数据时代的到来,“人脸”也将成为数据的一部分,人脸识别如何实现?本文将为大家从人脸检测、人脸定位、人脸校准以及人脸对比等方面详细阐述人脸识别的原理与实现方式。 随着计算机技术以及光学成像技术的发展,集成了人工智能、机器学习、视频图像处理等技术的人脸识别技术也逐渐成熟。未来五年,我国人脸识别市场规模平均复合增长率将达到25%,到2021年人脸识别市场规模将达到51亿元左右,具有巨大的市场需求与前景。 安防、金融是人脸识别切入细分行业较深的两个领域,移动智能硬件终端成为人脸识别新的快速增长点。因此,这三大领域将是人脸识别快速增长的最大驱动力。 2017年,我国安防行业总产值达到6200亿,同比增长16.98%,维持强劲发展势头。从细分产业来看,视频监控是构建安防系统中的核心,在中国的安防产业中所占市场份额最大。而人脸识别在视频监控领域具有相当的优势,应用前景广阔。 市面上的人脸识别解决方案也越来越多,但在系统框架上基本大同小异,大体框架如下图所示:

人脸检测 人脸定位人脸校准人脸描述获得特征描述信息输入数据库的特征描述信息 人脸信息1人脸信息 2人脸信息3 ... 接下来对人脸识别算法各技术点逐一进行详细介绍,包括人脸检测、人脸定位、人脸校准、人脸比对、人脸反欺诈以及算法优化等。 1. 人脸检测 人脸检测算法繁多,我们采用由粗到精的高效方式,即先用计算量小的特征快速过滤大量非人脸窗口图像,然后用复杂特征筛选人脸。这种方式能快速且高精度的检测出正脸(人脸旋转不超过45度)。该步骤旨在选取最佳候选框,减小非人脸区域的处理,从而减小后续人脸校准及比对的计算量。 以下为人脸检测算法的初始化接口, 根据实际应用场景设置人脸的相关参数,包括最小人脸尺寸、搜索步长、金字塔缩放系数等: 人脸检测实测效果如下图所示:

周立功笔试试题大全

周立功 [笔试] 2009.09.25东南大学周立功硬件笔试题目 周立功, 硬件, 笔试 [此帖已被设为推荐] 一、简答题 1.二进制、十进制、BCD码间转换 2.单片机C51用idata 及xdata定义变量的存放区域及其汇编指令 3.位运算指令(置位清零取反) 二、求运放的电压增益(就是一个反相比例运放的变异题,只要懂虚短虚断就OK) 三、1.史密特触发电路的高低电压阈值及回滞电压 2.依据输入电压波形画出输出电压波形 四、用门电路设计格雷码转换为自然二进码电路(给出格雷码状态图),要求画出设计电路图 五、D触发器构成的同步电路(要求写出驱动方程,状态方程,输出方程,画出状态转移图) 六、用单片机实现从串口读取四字节的数与固件中的四字节的常数比较,若相等,控制继电器闭合,延时6S.否则继续读取,比较... 要求画出电路及写出代码(建议用51) 七、一个8比特的数,要求编写一端C程序实现位倒序功能.如:a=b0b1b2b3b4b5b6b7,编程实现a=b7b6b5b4b3b2b1b0(要求实现的速度尽可能的快) B卷(本科) 1.运放求放大倍数的 2.三极管基础知识(放大区,截至区,饱和区) 3.并联RC变换成串联RC 4.运放求反馈的 5.单片机和74hc595硬件连接和编程 6。数据结构-----队列,建立一个队列,写数,读数。 转载请注明出自应届生求职招聘论坛https://www.360docs.net/doc/529030965.html,/,本贴地 址:https://www.360docs.net/doc/529030965.html,/thread-29218-1-1.html 广州周立功公司。 14:30开始宣讲,17点结束。主要还是说了自己企业如何如何。 18点开始在长春大学13层的1楼阶梯教室进行笔试。(之前他们说,他们准备了10套卷子,天津某某大学教授出题)B套卷子.16开纸2张,正反面。 一.有用二极管搭接的电路2个,分别是与门和或门.三极管搭接的就是非门了. 二.然后就是典型的三角形的放大电路,给出电压电阻,求解输出. 三.级联型的斯密特触发器,给出第一个触发器输出波形,要求画出输入和第二个斯密特出发器的输入与输出波形. 四.四个二极管和四个三极管搭接的桥型电机驱动电路, 控制四个三极管的C,用单片机写出程序.和四个二极管作用,还有2个接在电源上的电容的作用. 五.嗷嗷复杂的一个题,一堆电阻4个开关,接到了第一个放大器的+和-,输出接到第二个放大器,求解输出和开关的关系.把输出接到单片机口,用4位数表示输入. 用单片机控制4个开关,实现1K Hz 的正弦波. 六.一个数组,已排序.要求给出数组首位置,长度,要查找的数值..... int find(char n,char *a,char len,char *nsr) n是要查找的数值,*a是首地址,len是长度,*nsr是返回结果,0未找到,1找到,同时函数返回,0未找到,1找到,提示:使用折中法查找 总结一下, 模拟电子基础知识,主要是模拟放大电路.单片机简单C51编程(需要有实践能力).C

【ZLG微信文档精选】龙尚4G通信模块,更快更精彩

广州周立功单片机科技有限公司 龙尚4G 通信模块,更快更精彩

龙尚4G通信模块,更快更精彩 摘要:龙尚科技是全球领先的信息与通信解决方案供应商,提供2G/3G/4G全系列无线通信模块。其中4G通信模块主要有5模和7模:其中5模的4G模块有U8300W(mini pci-e 封装)和U9500(LGA封装);7模的4G模块有U8300C(mini pci-e封装)和U9500C(LGA 封装)。 推送目的:干货分享 是否原创:是 关键字:4G通信模块、U8300W、U8300C、 U9500、 U9500C 正文: 龙尚科技是全球领先的信息与通信解决方案供应商,在无线通信领域,以及M2M领域有独特的优势优势。龙尚提供GSM/GPRS/EDGE,WCDMA,CDMA1X/EVDO,TD-SCDMA 以及LTE全系列无线通讯模块以及基于无线通讯模块的物联网应用的解决方案。 龙尚的产品应用涉及POS机、广告推送器、多媒体信息机、车载导航、无线监控、智能电表、工控机、环境监测、充电桩及物联网、三网融合等相关领域。 我们先来大致了解下龙尚4G模块的参数: 1.1.1 U8300W无线通信模块 U8300W无线模块是一款适用于FDD-LTE/TDD-LTE/TD-SCDMA/UMTS /EDGE/GPRS/GSM多种网络制式的无线终端产品,U8300W模块支持多种频段。 1.LTE-TDD Quad-band Band 38/39/40/41; 2.LTE-FDD Tri-band Band 1/3/5; 3.TD-SCDMA Dual-band Band 34/39; 4.UMTS Dual-band Band 1/5; 5.GSM Quad-band Band 2/3/5/8; U8300W同时提供GPS定位服务: ●GPS可支持55通道; ●跟踪导航接收灵敏度达到-161dBm; ●冷启动时间32S以内,热启动时间1S以内。 U8300W支持FDD-LTE[100Mbps(DL) / 50Mbps(UL)]、TDD-LTE[61Mbps(DL) / 18Mbps(UL)]、TD-SCDMA[4.2Mbps(DL) / 2.2Mbps(UL)]和UMTS[42Mbps(DL) / 5.76Mbps(UL)]高速接入以及GPS定位服务,同时可提供短信、通讯簿,可广泛应用于移动宽带接入、视频监控、手持终端、车载设备等产品。

相关文档
最新文档