0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标签 > LPC

LPC

+关注 0人关注

LPC是线性预测编码是一种非常重要的编码方法。从原理上讲,LPC是通过分析话音波形来产生声道激励和转移函数的参数,对声音波形的编码实际就转化为对这些参数的编码,这就使声音的数据量大大减少。

文章: 72
视频: 14
浏览: 77599
帖子: 70

LPC简介

  LPC是线性预测编码(linear predictive coding,LPC)是一种非常重要的编码方法。从原理上讲,LPC是通过分析话音波形来产生声道激励和转移函数的参数,对声音波形的编码实际就转化为对这些参数的编码,这就使声音的数据量大大减少。在接收端使用LPC分析得到的参数,通过话音合成器重构话音。合成器实际上是一个离散的随时间变化的时变线性滤波器,它代表人的话音生成系统模型。时变线性滤波器既当作预测器使用,又当作合成器使用。分析话音波形时,主要是当作预测器使用,合成话音时当作话音生成模型使用。随着话音波形的变化,周期性地使模型的参数和激励条件适合新的要求。

LPC百科

  LPC是线性预测编码(linear predictive coding,LPC)是一种非常重要的编码方法。从原理上讲,LPC是通过分析话音波形来产生声道激励和转移函数的参数,对声音波形的编码实际就转化为对这些参数的编码,这就使声音的数据量大大减少。在接收端使用LPC分析得到的参数,通过话音合成器重构话音。合成器实际上是一个离散的随时间变化的时变线性滤波器,它代表人的话音生成系统模型。时变线性滤波器既当作预测器使用,又当作合成器使用。分析话音波形时,主要是当作预测器使用,合成话音时当作话音生成模型使用。随着话音波形的变化,周期性地使模型的参数和激励条件适合新的要求。

  LPC学习笔记

  从lpc-tutorial下载tutorial,通过阅读教程来学习LPC。

  关于LPC

  LPC被发明出来是一个用于LPMUD的解释性语言。LPMUD其实就是一个游戏服务器,那么就很清楚了LPC是一个用来写游戏服务器的脚本语言。

  LPC这个名字暗示了和C语言的联系。当然两者之间是有区别的,后面会渐次展开来讲。

  LPC游戏解析

  一个LPC游戏可以划分为三个部分:游戏驱动、mudlib、domain code。

  游戏驱动:运行于主机上的程序。基本的对象管理核心和解释器。它被用来理解LPC语言并执行这些指令。

  mudlib:LPC对象的集合。其中包含了基本的游戏环境。mulib里面的对象是最基本的游戏元素,比如玩家、怪物、房子等等。

  domain code:???

  语法入门

  啥都别说了,看代码。

  while语句

  while (test)

  statement;

  if语句

  if (this)

  {

  statement;

  }

  else if (that)

  {

  another_statement;

  }

  else

  {

  default_statement;

  }

  定义变量

  int a, b, c;

  for循环:

  for (a = 0; a 《 10; a++)

  {

  b = function_call(a, b * 2);

  c = b * 3 / 4;

  }

  空语句循环:

  while (!(var = func(var)))

  ;

  for循环:

  for (i = 0; i 《 100; i++);

  {

  《code that gets executed only once, but always》

  }

  定义方法:

  public void

  my_function(int a, int b)

  {

  《 code 》

  }

  文件头注释:

  /*

  * 《filename》

  *

  * 《Short description of what the file does, no more than 5-7 lines.

  * 。。.

  * 。。. 》

  *

  * Copyright (C): 《your name and year》

  *

  */

  函数注释:

  /*

  *

  *

  * Arguments: 《A list of all arguments, one per line

  * arg1 - description no longer than the line.

  * arg2 - next argument, etc. 》

  * Returns: 《What the function returns》

  */

  LPC基本语言概念

  LPC不是编译型的,而是解释型的语言。

  每次运行都被会重新解释为机器语言。

  其实这意味我们写的是一种间接语言,通过特定的解释器执行特定的机器语言。

  LPC语言的文件都是以.c为后缀的。文件名全部小写,如果文件里面含有多个单词,用下划线_把单词隔开。

  LPC基本语法

  注释

  // This is a comment stretching to the end of the line.

  /* This is an enclosed comment */

  数据类型

  void:nothing

  int:the range -2147483648 to 2147483647.

  float:range 1.17549435e-38 to 3.40282347e+38.

  string:such as “hallo world!”

  mapping:key value pair.

  object:references to LPC programs loaded into memory.

  function:LPC functions.

  array:all of things

  mixed:all of type

  变量声明

  int counter;

  float height, weight;

  mapping age_map;

  int counter = 8;

  float height = 3.0, weight = 1.2;

  mapping age_map = ([]);

  object *monsters = ({});

  基本上语法和pike是差不多的,如果还没入门最好先去看看pike。pike学习笔记

  如果没有为变量赋初值,那么变量会被赋值为0,相当于其他语言的null,一般来说都不是我们希望看到的,所以哪怕赋值为空都好过没有。

  方法声明

  /*

  * Compute the diameter of a circle given the circumference.

  *

  * Variables: surf_area - the surface area

  * name - the name given the circle

  * Returns: The circumference.

  */

  float

  compute_diam(float surf_area, string name)

  {

  float rval;

  // Circumference = pie * diameter

  rval = surf_area / 3.141592643;

  write(“The diameter of ” + name + “ is ” + ftoa(rval) + “\n”);

  return rval;

  }

  基本上对照上面的例子就知道怎么去声明和定义一个方法了。

  语句和表达式

  就是一些算数、布尔、条件、比较操作符。跟pike差不多,不赘述了。

  比较特别的是:

  The statement ‘a = 1, 2, 3;’ will set ‘a’ to contain ‘1’。

  一般我们写if语句都这样写:

  if (name == “fatty”)

  {

  nat = “se”;

  desc = “blimp”;

  }

  else if (name == “plugh”)

  {

  nat = “no”;

  desc = “warlock”;

  }

  else if (name == “olorin”)

  {

  nat = “de”;

  desc = “bloodshot”;

  }

  else

  {

  nat = “x”;

  desc = “unknown”;

  }

  更好的选择其实是使用switch语句:

  switch (name)

  {

  case “fatty”:

  nat = “se”;

  desc = “blimp”;

  break;

  case “plugh”:

  nat = “no”;

  desc = “warlock”;

  break;

  case “olorin”:

  nat = “de”;

  desc = “bloodshot”;

  break;

  default:

  nat = “x”;

  desc = “unknown”;

  }

  省了很多括号,而且更加清晰明了。

  多用三元符号代替if-else语句:

  int max(int a, int b)

  {

  if(a 》 b)

  return a;

  else

  return b;

  }

  int max(int a, int b)

  {

  a 》 b ? a:b;

  }

  优先级可以去查表:lpc优先级查找

  普通的循环语句就不再赘述了。

  array

  可以通过下面的方式声明array:

  int *my_arr, *your_arr;

  float *another_arr;

  object *ob_arr;

  my_arr = ({})

  虽然我觉得这种方式不太好。

  可以声明一个固定大小的array:

  you_arr = allocate(3); // =》 your_arr = ({ 0, 0, 0 });

  此外,如何想要在array后面或者前面添加元素,可以这样:

  int a = 3;

  int *b = ({1,2});

  b = b + ({a});

  甚至还能切片,切片始终返回一个array:

  my_arr = ({ 9, 3, 5, 10, 3 });

  my_arr = my_arr[0..0] + my_arr[2..4]; // =》 ({ 9, 5, 10, 3 })

  mapping

  mapping就是键值对序列。

  声明一个mapping:

  mapping my_map;

  使用mapping的方法和pike一致。

  比较特别的是,如果想删除mapping内的数据,可以用这个:

  my_map = m_delete(my_map, “bertil”);

  my_map = m_delete(my_map, “david”);

  此外,如果查找一个不存在的键值对,不会报错,而是返回0.

  预处理

  预处理并不属于LPC语言的一部分。在编译为可执行程序之前,预处理会将替换好所有的特定字符串。

  导入源文件

  当我们需要一些其他源代码文件提供的函数时,我们可以通过下面的方式来导入:

  #include 《standard_file》

  #include “special_file”

  #include 《stdproperties.h》

  #include 《adverbs.h》

  #include “/d/Genesis/login/login.h”

  #include “my_defs.h”

  #include “/sys/adverbs.h” // Same as the shorter one above

  基本上和C语言导入源文件是一样的。

  宏定义

  偶尔我们会需要用字符串来代替数字或者表达式,比如说:

  #define MAX_LOGIN 100 /* Max logged on players */

  #define LOGIN_OB “/std/login” /* The login object */

  #define GREET_TEXT “Welcome!” /* The login message */

  一般来说,不建议写宏。因为宏是无类型的,而且会在异常时无法确定到底是哪个地方出了问题。建议使用常量来代替宏,记得宏之所以还存在完全是为了向下兼容。

  #if, #ifdef, #ifndef, #else and #elseif

  直接看代码吧:

  #if CODE_VAR == 2

  《code that will be kept only if CODE_VAR == 2》

  #else

  《code that will be kept only if CODE_VAR != 2》

  #endif

  #define CODE_VAR /* This defines the existence of CODE_VAR */

  #ifdef CODE_VAR

  《code that will be kept only if CODE_VAR is defined》

  #else

  《code that will be kept only if CODE_VAR isn‘t defined》

  #endif

  #ifndef CODE_VAR

  《code that will be kept only if CODE_VAR isn’t defined》

  #else

  《code that will be kept only if CODE_VAR is defined》

  #endif

  感觉用这些有硬编码的感觉,会增加理解代码的难度,所以不推荐使用。

  进阶篇

  打印

  1、write:自然不用在赘述了,相当于printf。

  2、dump_array:打印一个array所有值,调试的时候挺有用的。注意,pike里没有这个函数。

  函数调用

  各种外部函数调用方式:

  pie = math_ob-》compute_pie(1.0);

  pie = “/d/Mydom/thewiz/math_ob”-》compute_pie(1.0);

  pie = call_other(math_ob, “compute_pie”, 1.0);

  pie = call_other(“/d/Mydom/thewiz/math_ob”, “compute_pie”, 1.0);

  虽然后面三种也能调用函数,但是这种代码的可读性太低了,完全应该忘掉。

  再来看看实际应用时的情况:

  object *people, *names;

  mapping hp_map;

  // Get a list of all players.

  people = users();

  // Get their names.

  names = people-》query_real_name();

  // Make a mapping to call with. Item = name:pointer

  hp_map = mkmapping(names, people)

  // Replace the pointers with hit point values.

  hp_map = hp_map-》query_hp();

  // All this could also have been done simpler as:

  hp_map = mkmapping(users()-》query_real_name(), users()-》query_hp());

  如何继承一个对象类?

  inherit “《file path》”;

  // 比如说

  inherit “/std/door”;

  inherit “/std/room.c”;

  //栗子

  void

  my_func()

  {

  /*

  * This function exists in the parent, and I need to

  * call it from here.

  */

  ::my_func(); // Call my_func() in the parent.

  }

  检测变量类型

  由于变量可能是0或者任意类型的东西,往往需要自己对变量做类型检查。

  @bullet{int intp(mixed)}

  Test if given value is an integer

  @bullet{int floatp(mixed)}

  Test if given value is a float

  @bullet{functionp(mixed)}

  Test if given value is a function pointer

  @bullet{int stringp(mixed)}

  Test if given value is a string

  @bullet{int objectp(mixed)}

  Test if given value is an object pointer

  @bullet{int mappingp(mixed)}

  Test if given value is a mapping

  @bullet{int pointerp(mixed)}

  Test if given value is an array

  类型限定符

  static 变量:静态的全局变量,声明一次之后一直存在

  static 函数:只能内部访问,外部是不可见的

  private 变量或函数:不被继承,只能对象内部访问

  normal 变量或函数:can not be mask?

  public 变量或函数:默认的限定符,任何成员都可访问内部对象

  varargs 函数:可变参数数量的,按顺序对参数赋值,如果没有则默认赋值为0。

  函数类型

  函数也可以作为一个变量。

  function my_func, *func_array;

  my_func = allocate;

  my_func = &allocate();

  int *i_arr;

  i_arr = allocate(5); // Is the same as.。。

  i_arr = my_func(5); // 。。. using the function assignment above.

  通过这种方式给函数重命名。

  switch case

  LPC的switch case支持int范围:

  switch (i)

  {

  case 0..4:

  write(“Try again, sucker!\n”);

  break;

  case 5..6:

  write(“Congrats, third prize!\n”);

  break;

  case 7..8:

  write(“Yes! Second prize!\n”);

  break;

  case 9:

  write(“WOOOOPS! You did it!\n”);

  break;

  default:

  write(“Someone has tinkered with the wheel.。。 Call 911!\n”);

  break;

  }

  catch throw

  LPC和普通语言的try-catch方式捕获异常是不一样的:

  int catch(function)

  e.g.

  //0-fail 1-true

  if (catch(tail(“/d/Relic/fatty/hidden_donut_map”)))

  {

  write(“Sorry, not possible to read that file.\n”);

  return;

  }

  throw(mixed info)

  e.g.

  if (test 《 5)

  throw(“The variable ‘test’ is less than 5\n”);

  mapping、array 引用

  LPC的mapping、array与pike一样是引用类型:

  object *arr, *copy_arr;

  arr = ({ 1, 2, 3, 4 }); // An array

  copy_arr = arr; // Assume (wrongly) that a copy_arr becomes

  // a copy of arr.

  // Change the first value (1) into 5.

  copy_arr[0] = 5;

  //如果想要一份拷贝怎么做?

  copy_arr = ({ }) + arr;

  LPC/Mudlib接口

  感觉到这里就是要开始学习如何实际使用LPC来编程了。前面的都只是基本的语法知识。

  首先介绍:/std/object.c。游戏里所有的对象都会继承这个基本类型。

  其他类型有:

  `/std/armour.c‘

  Armour of any kind

  `/std/board.c’

  Bulletin boards

  `/std/book.c‘

  A book with pages you can open, turn and read

  `/std/coins.c’

  The base of all kinds of money

  `/std/container.c‘

  Any object that can contain another

  `/std/corpse.c’

  Corpse of dead monsters/players/npcs

  `/std/creature.c‘

  Simple living creatures, basically a mobile that can fight

  `/std/domain_link.c’

  Use this as a base to preload things in domains

  `/std/door.c‘

  A door that connects two rooms

  `/std/drink.c’

  Any type of drink

  `/std/food.c‘

  Any type of food

  `/std/guild (directory)’

  Guild related objects (the guild and the shadows)

  `/std/heap.c‘

  Any kind of object that can be put in heaps

  `/std/herb.c’

  Herbs

  `/std/key.c‘

  Keys for doors

  `/std/leftover.c’

  Remains from decayed corpses

  `/std/living.c‘

  Living objects

  `/std/mobile.c’

  Mobile living objects

  `/std/monster.c‘

  Monsters of any kind

  `/std/npc.c’

  A creature which can use ‘tools’, i.e. weapons.

  `/std/object.c‘

  The base object class

  `/std/poison_effect.c’

  Handle effects in poison of any kind

  `/std/potion.c‘

  Potions

  `/std/receptacle.c’

  Any kind of closable/lockable container

  `/std/resistance.c‘

  Handle resistance against various kinds of things

  `/std/room.c’

  Any kind of room

  `/std/rope.c‘

  Rope objects

  `/std/scroll.c’

  Scrolls

  `/std/shadow.c‘

  Used as base when creating shadows

  `/std/spells.c’

  Spell objects, tomes etc

  `/std/torch.c‘

  Torches/lamps etc

  `/std/weapon.c’

  Any kind of weapons

  对象的使用

  一个对象总是能够得到自己的引用:

  ob = this_object()

  这个就类似于C++的this指针。

  对象的函数能够往前去查找调用此函数的对象(好神奇的感觉):

  p_ob = previous_object(); // The object calling this function.

  pp_ob = previous_object(-2); // The object calling the object

  // calling this function.

  甚至还能往前找指定层数的对象。

  不过这个函数只能去找外部调用,如果我们想要更牛掰的话,用这个:

  object calling_object(void|int step)

  用法是一样的,但是能够找内部也能找外部。

  怎么去判断找到的是一个合法的东西呢?(不是一个0)用objectp(something)就好了:

  if (objectp(calling_object(-2)))

  write(“Yes, an ob calling an ob calling this object exists!\n”);

  else

  write(“No such luck.\n”);

  函数类型

  在LPC里面,函数function也是一种对象,或者说变量类型。

  可以像这样定义一个函数指针:

  function f = (: local_func :);

  上面的 f  可以用于其他程序流程或外部函数中, 如同普通的变量值:

  foo(f);  map_array( ({ 1, 2 }), f);

  或者可以直接执行:

  x = evaluate(f, “hi”);

  等同于:

  x = local_func(“hi”);

  甚至于,定义函数指针时还能指定参数:

  function f = (: write, “Hello, world!\n” :);

  evaluate(f);

  显然,会输出:

  Hello, world!

  如果想要调用外部对象的函数:

  f = (: this_player(), ({ “query”, “short” }) :)

  等同于:

  f = (: call_other, this_player(), “query”, “short” :)        /* 一个外部函数指针, 使用 call_other */

  f = (: this_player()-》query(“short”) :)        // 有效的运算式; 请见下文。

  特殊的,运算式函数指针:

  evaluate( (: $1 + $2 :), 3, 4)        // 返回 7.

  这可以用于 sort_array, 范例如下:

  top_ten = sort_array( player_list,(: $2-》query_level() - $1-》query_level :) )[0..9];

  不知名函数(函数内部的函数):

  void create() {

  function f = function(int x) {

  int y;

  switch(x) {

  case 1: y = 3;

  case 2: y = 5;

  }

  return y - 2;

  };

  printf(“%i %i %i\n”, (*f)(1), (*f)(2), (*f)(3));

  }作者:1angxi链接:http://www.jianshu.com/p/11a5a2afbf86來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

查看详情

lpc知识

展开查看更多

lpc技术

Phoenix Contact 用于电子应用的 LPC 2,5 PCB 连接器

Phoenix Contact 用于电子应用的 LPC 2,5 PCB 连接器

作者:Rolf Horn 投稿人:DigiKey 欧洲编辑 PCB 连接器是一种模块化的绝缘装置,可用于电路板的电气连接。随着对紧凑型高效电子设备需求的...

2024-01-01 标签:LPC连接器电路板 967 0

印刷电路板容易受到攻击的几个部分?

印刷电路板容易受到攻击的几个部分?

检查完原理图和布局设计图后,布局设计图将被转换为一组文件。最常见的文件格式为“Gerber”,或RS-274X。它由ASCII格式的命令组成,表明电路板...

2023-11-09 标签:原理图LPC印刷电路板 280 0

LPC55S69开发板对接RTduino的相关工作

LPC55S69开发板对接RTduino的相关工作

RTduino 是基于 RT-Thread 框架下进一步的封装,使得用户可以像开发 Arduino 一样快速上手。

2023-10-11 标签:LPCled灯RGB 779 0

[LPC55S6X]解决在-dist之后无法编译的问题的思路

[LPC55S6X]解决在-dist之后无法编译的问题的思路

在进行bsp适配的时候,在bsp\lpc55sxx\lpc55s36_nxp_evk下输入命令scons —dist

2023-10-11 标签:控制器LPCSTM32 720 0

LPC55S69 PWM踩坑寄录

在使用 lpc55s69_nxp_evk 开发板对接 rtduino 的过程,对接 PWM 部分的时候,遇到了不少坑,在此记录。

2023-10-11 标签:LPC定时器RT-Thread 572 0

LPC55S69对接RT-Thread PWM设备框架

在使用 RT-Thread 的 bsp pwm 的时候,注意到 lpc55sxx 系列只对接了通用定时器2中的通道1作为 PWM 输出。但其实 LPC5...

2023-10-11 标签:LPC定时器CMD命令 650 0

eSPI通讯总线的应用优势

eSPI总线是Intel在2016年推出的一种通讯总线,用于x86 CPU平台和外设之间的通讯。

2023-02-15 标签:LPC寄存器FlaSh 4059 0

MCUBootUtility v4.0工具升级

v4.0 版本新增了不少新型号的支持,囊括经典的 i.MXRT、LPC 系列以及全新的 MCX 系列下最近发布的产品。

2023-01-08 标签:mcuLPC 1403 0

EC芯片专用总线介绍

随着超大规模集成电路的不断发展,芯片的功能也愈发集中,在电子产品的系统中 “各司其职” 。在一个电子产品的硬件系统中,通常都是多个芯片协同工作,所以芯片...

2022-12-20 标签:mcuLPC总线 1576 0

使用FIT LPC模块的低功耗配置模块

使用FIT LPC模块的低功耗配置模块

RX100 系列共有三种主动功率模式,即高速模式、中速模式和低速模式。这些模式在本文档中将被称为操作功耗模式。

2021-06-21 标签:LPCFit 1979 0

查看更多>>

lpc资讯

英诺达发布RTL级功耗分析工具助推IC高能效设计

英诺达发布了自主研发的EnFortius®凝锋®RTL级功耗分析工具,可以在IC设计流程早期对电路设计进行优化。

2023-11-01 标签:LPCIC设计EDA工具 710 0

首颗适配 Intel MTL 平台的EC芯片,它来了!!

首颗适配 Intel MTL 平台的EC芯片,它来了!!

LS101x具有高度兼容主流EC应用方案的特点,并内嵌多种新型外设,助力推动EC方案创新和应用拓展,满足更多市场需求。LS101x作为主处理器的从设备,...

2023-09-20 标签:处理器芯片LPC 2643 0

英诺达发布DFT静态验证工具

英诺达发布了自主研发的静态验证EDA工具EnAltius®昂屹® DFT Checker,该工具可以在设计的早期阶段发现与DFT相关的问题或设计缺陷。

2023-09-13 标签:LPCIC设计EDA工具 1221 0

全功能双CameraLink SDR接口 FMC子卡QT7421介绍

全功能双CameraLink SDR接口 FMC子卡QT7421介绍

QT7421是一款具有2个Camera Link SDR接口的全功能单宽FMC子卡模块,它提供标准的工业相机链路接口,为用户提供了利用FPGA解决大运算...

2023-09-11 标签:LPC连接器接口 1011 0

关于2023赛季RoboMaster机甲大师赛机器人用导电滑环

新赛季RoboMaster机甲大师赛即将打响,由于新赛季比赛规则发生了一些变更,所以参赛战队也不得不更新一部分机器人,英雄机器人、哨兵机器人、步兵机器人...

2023-01-09 标签:LPC机器人 1406 0

详细讲解LPC553x双伺服电机控制方案的演示环境

项目中源文件(*.c)和头文件(*.h)的总数较多。因此,我们只详细介绍关键项目文件,其余的将被分组描述。

2022-08-25 标签:微控制器LPC伺服电机控制 1354 0

IAP编程page0返回失败的问题总结

IAP编程page0返回失败的问题总结

最近在支持客户的时候遇到这样一个问题:客户在做自己的二级boot loader,并且在使用LPC54608 IAP功能,编程sector0中的page0...

2021-10-20 标签:LPCIAP代码 2262 0

晶沛高频滑环有哪些优势

在所有的滑环类型中,只有高频滑环具备高清视频信号和高频信号传输的能力,当然,这两种信号不能同时在一个高频滑环内传输。通常情况下,用以传输高清视频信号的高...

2021-04-15 标签:LPCSMA 710 0

浅析ARM开发板的车辆检测控制单元设计

浅析ARM开发板的车辆检测控制单元设计

由于交通需求的不断增加,有越来越多的环形感应线圈检测器用于交通检测。这些埋设在道路表面下的线圈可以检测

2021-04-07 标签:LPC微处理器CCU 2342 0

基于LPC与LSF系数转换的FPGA实现

基于LPC与LSF系数转换的FPGA实现

首先根据切比雪夫多项式求根法对LPC系数到LSF系数转换过程进行分析与推导,并给出了根据已知的LSF系数进行逆推求

2021-04-07 标签:fpgaLPCDDS 3365 0

查看更多>>

lpc数据手册

相关标签

相关话题

换一批
  • IOT
    IOT
    +关注
    IoT是Internet of Things的缩写,字面翻译是“物体组成的因特网”,准确的翻译应该为“物联网”。物联网(Internet of Things)又称传感网,简要讲就是互联网从人向物的延伸。
  • 海思
    海思
    +关注
  • STM32F103C8T6
    STM32F103C8T6
    +关注
    STM32F103C8T6是一款集成电路,芯体尺寸为32位,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。
  • 数字隔离
    数字隔离
    +关注
    数字隔离技术常用于工业网络环境的现场总线、军用电子系统和航空航天电子设备中,尤其是一些应用环境比较恶劣的场合。数字隔离电路主要用于数字信号和开关量信号的传输。另一个重要原因是保护器件(或人)免受高电压的危害。本文详细介绍了数字隔离器工作原理及特点,选型及应用,各类数字隔离器件性能比较等内容。
  • 硬件工程师
    硬件工程师
    +关注
    硬件工程师Hardware Engineer职位 要求熟悉计算机市场行情;制定计算机组装计划;能够选购组装需要的硬件设备,并能合理配置、安装计算机和外围设备;安装和配置计算机软件系统;保养硬件和外围设备;清晰描述出现的计算机软硬件故障。
  • wifi模块
    wifi模块
    +关注
    Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议栈以及TCP/IP协议栈。传统的硬件设备嵌入Wi-Fi模块可以直接利用Wi-Fi联入互联网,是实现无线智能家居、M2M等物联网应用的重要组成部分。
  • 74ls74
    74ls74
    +关注
    74LS74是双D触发器。功能多,可作双稳态、寄存器、移位寄存器、振荡器、单稳态、分频计数器等功能。本章详细介绍了74ls112的功能及原理,74ls74引脚图及功能表,74ls112的应用等内容。
  • MPU6050
    MPU6050
    +关注
    MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。
  • UHD
    UHD
    +关注
    UHD是”超高清“的意思UHD的应用在电视机技术上最为普遍,目前已有不少厂商推出了UHD超高清电视。
  • Protues
    Protues
    +关注
    Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
  • STC12C5A60S2
    STC12C5A60S2
    +关注
    在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASHROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。
  • 循迹小车
    循迹小车
    +关注
    做单片机的工程师相比都堆循迹小车有所认识,它是自动引导机器人系统的基本应用,那么今天小编就给大家介绍下自动自动循迹小车的原理,智能循迹小车的应用,智能循迹小车程序,循迹小车用途等知识吧!
  • 光立方
    光立方
    +关注
    光立方是由四千多棵光艺高科技“发光树”组成的,在2009年10月1日天安门广场举行的国庆联欢晚会上面世。这是新中国成立六十周年国庆晚会最具创意的三大法宝之首。
  • K60
    K60
    +关注
  • LM2596
    LM2596
    +关注
    LM2596是降压型电源管理单片集成电路的开关电压调节器,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性。固定输出版本有3.3V、5V、12V,可调版本可以输出小于37V的各种电压。
  • 光模块
    光模块
    +关注
    光模块(optical module)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。简单的说,光模块的作用就是光电转换,发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成电信号。
  • STM32单片机
    STM32单片机
    +关注
    STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核
  • 步进驱动器
    步进驱动器
    +关注
    步进驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。
  • Nexperia
    Nexperia
    +关注
    Nexperia是大批量生产基本半导体的领先专家,这些半导体是世界上每个电子设计都需要的组件。该公司广泛的产品组合包括二极管、双极晶体管、ESD 保护器件、MOSFET、GaN FET 以及模拟和逻辑IC。
  • CD4046
    CD4046
    +关注
    cD4046是通用的CMOS锁相环集成电路,其特点是电源电压范围宽(为3V-18V),输入阻抗高(约100MΩ),动态功耗小,在中心频率f0为10kHz下功耗仅为600μW,属微功耗器件。本章主要介绍内容有,CD4046的功能 cd4046锁相环电路,CD4046无线发射,cd4046运用,cd4046锁相环电路图。
  • COMSOL
    COMSOL
    +关注
    COMSOL集团是全球多物理场建模解决方案的提倡者与领导者。凭借创新的团队、协作的文化、前沿的技术、出色的产品,这家高科技工程软件公司正飞速发展,并有望成为行业领袖。其旗舰产品COMSOL Multiphysics 使工程师和科学家们可以通过模拟,赋予设计理念以生命。
  • 加速度传感器
    加速度传感器
    +关注
    加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。
  • 联网技术
    联网技术
    +关注
  • 服务机器人
    服务机器人
    +关注
    服务机器人是机器人家族中的一个年轻成员,到目前为止尚没有一个严格的定义。不同国家对服务机器人的认识不同。
  • 四轴飞行器
    四轴飞行器
    +关注
    四轴飞行器,又称四旋翼飞行器、四旋翼直升机,简称四轴、四旋翼。这四轴飞行器(Quadrotor)是一种多旋翼飞行器。四轴飞行器的四个螺旋桨都是电机直连的简单机构,十字形的布局允许飞行器通过改变电机转速获得旋转机身的力,从而调整自身姿态。具体的技术细节在“基本运动原理”中讲述。
  • 基站测试
    基站测试
    +关注
    802.11ac与11基站测试(base station tests) 在基站设备安装完毕后,对基站设备电气性能所进行的测量。n的区别,802.11n无线网卡驱动,802.11n怎么安装。
  • TMS320F28335
    TMS320F28335
    +关注
    TMS320F28335是一款TI高性能TMS320C28x系列32位浮点DSP处理器
  • 静电防护
    静电防护
    +关注
    为防止静电积累所引起的人身电击、火灾和爆炸、电子器件失效和损坏,以及对生产的不良影响而采取的防范措施。其防范原则主要是抑制静电的产生,加速静电泄漏,进行静电中和等。
  • OBD
    OBD
    +关注
    OBD是英文On-Board Diagnostic的缩写,中文翻译为“车载诊断系统”。这个系统随时监控发动机的运行状况和尾气后处理系统的工作状态,一旦发现有可能引起排放超标的情况,会马上发出警示。
  • SDK
    SDK
    +关注
      SDK一般指软件开发工具包,软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具广义上指辅助开发某一类软件的相关文档、范例和工具的集合。

关注此标签的用户(8人)

jf_94591981 cuizhenyuan2 燕康202011060855 jf_66137209 dffff 陈陈陈小 ben111  有人@我

编辑推荐厂商产品技术软件/工具OS/语言教程专题