当前位置:文档之家› STM8L问答

STM8L问答

STM8L问答
STM8L问答

[1问:] STM8L总线数据传输速度可达多高?

[答:] CPU的时钟频率为16MHz

[2问] 如何实现ARM内核的低功耗设计

[答:] STM8L不是ARM内核的

[3问:] STM8L的产品的工作主频能有多大?可以在待机时改变频率以节省电能吗? [答:] 最高16MHz,16MIPS,待机前可以降频

[4问:] STM8加密除了在下载的时候禁止读写以外,还有什么好办法呢?

[答:] 每个芯片有唯一的ID,可以在程序中做加密处理

[5问:] STM8很多寄存器需要在某种状态下才允许修改的,能否详细说明一下?[答:] 这个问题能够提的具体一点吗?

[6问:] 8位微控制器STM8L的外设接口是怎样设置的?

[答:] 你指什么外设?

[7问:] STM8L单片机和TI的msp430系列MCU有什么不同,与TI的功耗比相比有什么优势?谢谢

[答:] STM8L是8位机,因此比16位机便宜。STM8L可达16MIPS,与MSP430速度相当。

STM8L的许多工作模式,功耗比TI还低

[8问:] STM8L是几级流水的?工作频率是多少?指令周期是多少?有多少单指令周期指令和双指令周期的指令?

[答:] 3级

16MHz Max

指令集与STM8S相同

STM8L的内核是CISC内核,指令周期从一个周期至最长10几个周期(除法指令)都有。

[9问:] 调试方式有几种?FLASH和RAM?可以选择吗?

[答:] 可以选择Flash或RAM运行程序。

[10问:] 支持几种IDE?请简单介绍,谢谢

[答:] ST推荐STVD

还有Raisonance的IDE也可以。

[11问:] 目前stm8的编译器不是很好用,我想问一下是否有让iar支持stm8的计划啊?我想要是有的话,stm8的推广会更顺利一些……

[答:] 再耐心等待吧,计划中的

[12问:] 宣传资料上看到有关于stm芯片片内都有唯一的ID号,而且在加密时可以派上用场!请教这序列号在什么地方?我应该怎么读取?有相关例程么?

[答:] 请下载最新版本的参考手册和数据手册,上面有说明

[13问:] 如何设置代码在flash运行还是在sram中运行?

[答:] 默认在Flash运行,但也可以选择在RAM运行。只要选择代码的存储位置,即可设置在Flash或RAM运行。

[14问:] 代码的防偷盗,也是利用FLASH编程的方式进行吗?请专家简单介绍代码安全如何保护,谢谢

[答:] 1. STM8S/L拥有可靠的读保护功能,使能读保护后,无法通过调试手段读取RAM/FLASH/EEPOM/OPTION BYTES;而客户IAP功能不受影响

2.STM8S/L部分种类芯片(以后会扩展到所有芯片)拥有96bit 只读ID号,配合IAP功能,客户可进一步增强芯片代码保护

[问:] 请解释下swim调试接口和传统的JTAC或者ISP接口有什么区别和优势?

[答:] 只需要占用1个IO口,速度比ST7的ICC更快

[问:] 开发工具是个问题,为什么为向32位靠呢,JLINK或ULINK就行而又要RLINK或STLINK,而这两种都很贵,请问有无比较方便的工具

[答:] ST-Link价钱较JLink,ULink,Rlink都要便宜

[问:] 开发板可以通过南京万利,还是深圳英贝特还是北京的公司申请?

[答:] 现在还不可以,后续我们会通过渠道提供评估板

[问:] STM8的最低工作电压是1.8V吗?能否再适度降低一些?比如1.5V或1.2V?[答:] 最低1.65V

[问:] STM8L是否有免费的GCC编译器?

[答:] Cosmic提供16K代码以下交叉编译器,GCC现没有支持STM8的编译器

[问:] 在什么情况下应用带有LCD的STM8L系列产品?什么情况下应用不带LCD的STM8L系列?

[答:] 请根据您项目的具体需求选择合适的产品

[问:] 在功耗上,STM8L与MSP430、HCS08和Microchip的nanoWattXLP系列相比有什么优势?有性能比较图吗?

[答:] STM8L有多种低功耗工作模式。很多模式下的功耗是低过MSP430、HCS08和Microchip的nanoWattXLP。

比较图在presentation中有。如果没有您要的数据,您可以给ST办事处联系

[问:] STM32系列芯片做产品要注意散热问题,我看STM8L系列的芯片封装形式,引脚间距稍大,是不是对散热考虑就不用那么严格了?

[答:] STM32系列芯片功耗很小,一般应用不必考虑散热问题。STM8L是超低功耗产品,一般也不存在散热问题。

[问:] 如何從暫停喚醒?

[答:] 会有多种模式,比如外部中断,内部定时唤醒,具体的看我们的手册

[问:] 是不是ISP下载调试方式可以和STM32系列利用相同的官网ISP软件?

[答:] 是的。

[问:] 刚才讲到STM8L能够在外部晶振失效的情况下自动转换为内部晶振工作,其频率会发生变化吗?是不是就不会发生像ATMEL的锁死现象了?谢谢!

[答:] 切换到内部晶振后分频比不会改变,如果HSE的频率不是16MhZ,那么频率是会有改变的。但是你可以通过重新配置分频比来调整

[问:] 您好,我是刚用上STM8L芯片的,但是感觉STM8L芯片的LCD驱动引脚数不够,那么以后会有设计出更多LCD引脚数的芯片吗?

还有一个问题是STM8L芯片的RTC的时钟现在没有独立的后背电源供应,断电之后时钟重新设置,外围电路可以补救这个问题,但是是否要考虑芯片内部有独立电源供应更方便一点?谢谢!

[答:] 后面很快会有更多管脚的STM8L系列产品面世。这个心新产品也改进了RTC的性能。

[问:] 在低功耗模式下,低电压检测复位什么时候被打开?什么时候关闭?

[答:] 低电压检测复位只是在上电时默认打开,随时可以通过程序关闭。

[问:] STM8L的IO口电平可以直接连接TTL电平吗?还是需要电平逻辑转换?

[答:] 检查两个芯片是否可以直连的最直接和可靠的方法是看两个的芯片的VIH/VIL及VOH/VOL是否匹配。

如果对方是5V的电平,一般需要加限流电阻或逻辑转换芯片

[问:] 请问贵公司的网站是否有系列STM8L的汇编手册?是否可以下载?

[答:] 使用标准的STM8核心。在ST网站下载

https://www.doczj.com/doc/ef18152848.html,/stonline/products/literature/pm/13590.pdf

[问:] 系统调试方面,STM8L用的是什么接口?是否支持在线调试?

[答:] 采用SWIM调试接口,支持在线调试,在运行读写,hot plug

[问:] 刚才讲到ST-Link价钱较JLink,ULink,Rlink都要便宜,请问有何区别呢?

[答:] ST-Link只支持STM8S/L,STM32系列芯片的调试下载

[问:] 请问用UV3可以调试STM8L吗?

[答:] 暂时不支持

[问:] 有没有带can口的计划?

[答:] 目前STM8L没有CAN的计划,如果需要的话,你可以用STM8S.

[问:] STM8L的封装有没有PDIP的?

[答:] 没有

[问:] STM8L我刚使用了STM8L101K3,但是觉得产品的供货期时间太长,这个芯片的总体性能很不错。还有能不能提供2个串口的STM8L系列的CPU,现在只有STM8S的双串口[答:] 可与您的代理商做好生产预测和备货,可以解决供货周期的问题。在以后规划中有多串口的STM8L。

[问:] 怎样合理使用stm8的时钟源?

[答:] 问题能否具体一些?

[问:] 8L系列有没有端口复用的功能?类似STM32系列的那种,很是不错的。

[答:] 可以端口复用,但现在不支持端口重映射

[问:] swim调试接口所用的IO口是固定的还是可指定的?是否可以复用?

[答:] 是固定的IO口,不可指定。

可以复用

[问:] 请问STM8L如何把端口重映射?

[答:] 暂不支持

[问:] STM8L101系列的集成度如何?内存密度多少?

[答:] Flash是4K或8K,RAM为1.5K。

[问:] 在IARKEIL环境下是否支持STM8L?

[答:] 不支持

[问:] STM8L如何防止被copy?

[答:] 读保护防止被读取。可利用每个芯片唯一的ID做程序防盗

[问:] ST的时钟分配器各路能同时输出吗?

[答:] 可以。

[问:] 请问STM8L是否有PCA、PWM模块?

[答:] STM8L的定时器输出能够实现这样的功能

[问:] STM8L系列单片机今后是否会推出集成RF功能的型号?

[答:] 你指的RF, 是在什么频段的?STM32产品中即将推出带RF的。

[问:] 刚才看到SWIM调试接口只用了4跟线,包括电源、地、SWIM;另外一个没看清。不知是什么引脚?

[答:] 复位线

[问:] ST的MCU的功耗具体利用哪些方面降低

[答:] 通过特殊的工艺和结构实现。

[问:] 专家说可以使用STM8L开发医疗设备,芯片的可靠性能有多高?

[答:] STM8L是符合相应的规范的,同时ST会针对可靠性,稳定性作相应的测试。

[问:] ST系列的输出能驱动后级负载吗?

[答:] 总输出电流80mA,单个IO口sink电流25mA

[问:] 活跃暂停模式和暂停模式有什么不同?

[答:] 活跃暂停模式支持自唤醒,功耗略高些,

暂停模式不支持自唤醒,只支持外部中断唤醒,功耗最低

[问:] 請說明觸摸感應程庫的詳細功能

[答:] 详细说明和软件库可从ST网站下载

[问:] 编译器对c代码量有限制吗?

[答:] 编译器对C代码量没有限制。

[问:] 最高端的8L产品有几路UART和SPI?它们的速率为多大?IIC有吗?

[答:] SPI 1 ch 8Mbit/s max

UART 1 ch 1Mbit/s max

[问:] 在使用STM32过程中,发现IIC的硬件使用不稳定,在STM8中,还有这样的问题吗?

[答:] STM32的IIC很稳定。请您与ST公司技术支持联系

[问:] STM8L是否有集成电源控制的功能?就是像C8051F9XX系列那样内部集成DC/DC 功能模块,适合不同的供电电压?

[答:] STM8L内部集成电源调节器,以满足1.8到3.6的供电

[问:] 内部DAC的精度为多少?转换最高速度是?

[答:] 12位,速度1MHz。

[问:] STM8L有没有按键去抖功能?

[答:] 按键去抖可由软件及硬件实现。

利用STM8 timer input Capture,可利用硬件方便实现去抖功能

[问:] 请问STM8L有航空航天级别的吗?

[答:] 现在没有。

[问:] 8位微控制器STM8L在程序保密上有什么独特的技术吗?

[答:] 1. STM8S/L拥有可靠的读保护功能,使能读保护后,无法通过调试手段读取RAM/FLASH/EEPOM/OPTION BYTES;而客户IAP功能不受影响

2.STM8S/L部分种类芯片(以后会扩展到所有芯片)拥有96bit 只读ID号,配合IAP功能,

客户可进一步增强芯片代码保护

[问:] ST-Link仿真器是否可以自己DIY?有没有推荐电路?

[答:] 不能DIY

[问:] 芯片没有内置倍频的模块吗?可以提升cpu运行速度

[答:] 没有

[问:] STM8L的电源管理模式包括哪些?

[答:] 你指低功耗模式吧?我们的低功耗模式有低功耗运行模式,低功耗等待模式,活跃暂停模式,暂停模式等

[问:] 在线调试,支持几级断点?

[答:] 断点数量无限制

[问:] STM8L是否需要散热,是否需要大面积的铜皮散热?

[答:] STM8L的功耗超低。适用于电池供电的产品。

[问:] 编译器是否有代码量限制?如果有,上限时多少?

[答:] Cosmic免费的License代码限制在16K以内。付费版无限制

[问:] 刚才讲的IEC60335-1自我检测程序在评估板的光盘中有吗?刚才讲只有通过经销商才能获得,不知是否如此,在这里能不能提供给大家一下?

[答:] 这个自我检测程序只适用于向欧洲出口的家电产品。

[问:] STM8L与传统的51比较,除了功耗低还有哪些优势?

[答:] 性能

[问:] 每个芯片唯一的ID,是ST设定的还是用户设定的?

[答:] ST设定的

[问:] ST-LINK的最新版本支持哪些芯片调试?

[答:] 支持所有ST MCU,如STM32,STM8S,STM8L

[问:] 自动唤醒模式是否可以选择不同的时钟源?是否可以调整唤醒时间间隔?[答:] 可使用HSE或LSI。可以调整唤醒时间间隔

[问:] SWIM调试接口与JTAG接口相比较,有哪些优势?

[答:] 占用IO口数量少,连接简单,速度快

[问:] 152的ADC和DAC各有几个通道?

[答:] 最多有25路ADC和1路DAC

[问:] 休眠时实时钟如何维持?耗电多大?

[答:] 休眠时实时钟由电池维持,最低耗电1uA。

[问:] 请问微控制器STM8L的I/O漏电流是多少?

[答:] 普通数字I/O的漏电流为+/-1uA

[问:] 为什么支持外部中断唤醒,功耗反而低?

[答:] 外部中断唤醒MCU处于HALT模式,所有的时钟电源都关闭,所以功耗最低

[问:] STM8L是否支持大容量外部ROM

[答:] 需要根据具体的ROM型号而定

[问:] STM8L内部是硬加密还是软加密?

[答:] 1. STM8S/L拥有可靠的读保护功能,使能读保护后,无法通过调试手段读取RAM/FLASH/EEPOM/OPTION BYTES;而客户IAP功能不受影响

2.STM8S/L部分种类芯片(以后会扩展到所有芯片)拥有96bit 只读ID号,配合IAP功能,客户可进一步增强芯片代码保护

[问:] 芯片的抗干扰性能如何,应用于电力仪表中可以吗?

[答:] STM8L是针对工业应用的产品,可以用于电力仪表。

[问:] STM8L和STM8S除了can的接口,还有什么不同?

[答:] 带DMA

功耗更低

12为ADC

带DAC

[问:] 理论上,STM8L的I/O口的可以抗多大付的静电?

[答:] HBM模型2000V

CDM模型1000V

[问:] 无限制的license费用多少?

[答:] 请联系编译器供应商

[问:] STM8L的功耗不会随供电电压的增高而增高,请教ST专家这是如何处理实现的?[答:] 通过特殊的生产工艺实现。

[问:] 8L是否支持OS?有没有UCOS的代码的开发例程?

[答:] 理论上可以,但是在8位机上运行OS有些吃力,现在在STM8S/L上没有usos的开发例程

[问:] 请问STM8L的PWM功能如何?

[答:] 很好

[问:] 请问STM8L是否有集成升压模块的型号,适合一节电池供电的情况?

[答:] 目前还没有这样的型号。

[问:] 双看门狗有何优势?

[答:] 工作更可靠

使用更灵活

[问:] STM8L可以内存多少比特代码?

[答:] STM8L的Flash最小是4K字节,最大达32K字节。

[问:] STEV AL-IAS003V1超低功耗演示板的電池可運用多久?是否有實測值?

[答:] 理论值可根据电池容量和待机时功耗计算。理论上可待机10年以上,因此没有实测值。

[问:] 在复位后IO的输出是高电平还是低电平或开漏?可以配置吗?

[答:] 是高阻态。

[问:] 请问.8位微控制器STM8L系列微控制器如果用于闭环控制,他的速度能有多快?[答:] 闭环控制算法很多,根据算法和最终代码才能确定

[问:] PWM頻率可達多高?

[答:] 最高等同于Fcpu

[问:] 问一下专家,8L是否支持OS?有没有UCOS的代码的开发例程?

[答:] 可以支持OS。我们目前没有UCOS的代码的开发例程。

[问:] ST的STVD的那个版本支持现有的STM8L芯片?

[答:] 现在最新的4.1.3可以支持STM8L

[问:] 感谢专家刚才的解答,我说的RF是ISM频段的,现在常用的是433/2.4G,可以根据需要调整频率。就像TI的CC11XX、CC2500、CC430系列那样,ST是否也会推出类似的型号?

[答:] STM32会推出内置2.4G的。

[问:] 我想使用STM8L的芯片开发手持式的仪表,有哪些产品有40个I/O口?

[答:] STM8L15x 48pin 最多有41个IO口可供使用

[问:] STM8L,STM8S系列主要差别在哪里?

[答:] STM8L的功耗超低,带LCD控制,和DAC,供电电压也低

[问:] 请问我们从哪里可以看到8位微控制器STM8L的基准测试结果?谢谢

[答:] 请查看我们最新的数据手册。可能一些数据还没有更新,请关注数据手册的更新。

[问:] stm8的时钟16M,是指内核速度吗?它的指令周期多长?

[答:] 内核的时钟频率是16MHz,指令是CISC指令,不同指令的长度不一样,最短的只

有1个时钟周期,平均是2个时钟周期。

[问:] 8L系列有没有以太网的解决方案呢?有没有参考例程?参考电路设计有吗?[答:] STM32F107系列带以太网控制器

[问:] STM8L的I/O口能防抗静电1-2KV是如何实现的?

[答:] 设计与测试保证

[问:] STM8L系列MCU的开发工具有哪些?编程语言支持哪些?

[答:] 一般用STLINK。支持汇编和C语言

[问:] 用STM8L做256点,16位整形的FFT计算,大概要多长时间?STM8L做FFT可行吗?

[答:] 未曾测试过,

可以做FFT运算

[问:] 是否有工業馬達控制範例?

[答:] 我们推荐您需用STM8S或者STM32控制工业马达。

[问:] AD是一个很耗电的组件,STM8L内部AD在功耗上有什么优势吗?

[答:] 优势是低功耗。

[问:] 对电影纹波的容忍度多少?

[答:] 要看具体的应用。普通简单控制和触摸按键控制对电源纹波要求就很不一样。

从EMC角度来说,STM8 EFTB: 4A VESD:2B

[问:] 请问STM8S103K3 的I/O口PDO\PB0\PB1\PB2无法控制是什么原因造成的?其他口都很正常.

[答:] 型号不对,或者程序不对

[问:] STM8L可以使用内部的flash的部分空间做成EEPROM用于存储可变数据吗?[答:] STM8L内部有真正的1KB EEPROM,用于存储数据。

[问:] STM8L的抗干扰性能如何?如何在STM8L的硬件和软件上有什么好的方法?[答:] STM8L的抗干扰性强。在ST网站能下载到提高抗干扰性的应用笔记

[问:] STM8L是否支持串口ISP?

[答:] 支持。

[问:] 编译器是否有内嵌逻辑分析仪?能够分析代码运行情况,以及管脚电平变化?[答:] 没有,STM8L的SWIM接口可以在完全不影响MCU运行的情况下检测内部所有寄存器/存储器的状态,可以通过I/O口的控制寄存器检测管脚电平变化

[问:] 请问STM8L有没有集成USB的型号,如果有是否支持USB-HID模式?

[答:] STM8L没有集成USB的型号。

[问:] 有否使用於智能電表及智能電網的範例?

[答:] STM8L有适合智能电表应用的产品,后续会有参考设计

[问:] 此微处理器的EMC等极是多少?

[答:] VESD: 2B

EFTB: 4A

合适的设置可以使整个系统达到更高的水准。(一个实例:EFTB: 4800V,ESD:12000V)

[问:] 对高、低温环境,潮湿等恶劣环境的适应性如何?

[答:] 良好

[问:] STM8L有没有用于医疗产品的实际案例

[答:] STM8L 功耗低,性价比高,特别适用于便携式医疗产品

[问:] UART速度可達多高?

[答:] 1Mbps

[问:] 8L的看门狗有窗口看门狗和?

[答:] 独立看门狗

[问:] stm8l有多少个中断,优先级是否可以调整,是否支持硬件的中断嵌套?

[答:] 最多32个中断,优先级可以调整,支持硬件中断嵌套

[问:] 3.6v工作ad的电压基准最低为多少?

[答:] 请参考具体datasheet,一般来说,有ref引脚的芯片可使用更低的电压基准

[问:] 有没有内部电压基准?ADC和DAC使用的电压基准是外接的还是内部的?[答:] 有内部电压基准,有些型号也可以使用外部电压基准。

[问:] 怎样实现低电压检测?

[答:] STM8L内嵌有低电压检测电路。

[问:] 有没有STM8的选型手册?如何区分民用级、工业级和军工级?

[答:] STM8的选型手册可从网站上下载,或联系ST办事处,代理商索取。STM8S,STM8L 是工业级的。STM8A是汽车级的

[问:] 请问STM8L芯片的时间响应性能如何

[答:] 请具体说明对何种信号的时间响应

[问:] 8L是否支持OS?有没有UCOS的代码?

[答:] 一般很少在8位机上运行OS

[问:] 8L可否移植OS?是不是UCOS是可以的?

[答:] uCOS 应该可以,但是要根据应用裁剪。

[问:] 我使用STVD+Cosmic开发,为什么在STVD中的选择芯片STM8S103F3或者STM8S103K3都可以与板上的STM8S103K3连接成功?而STM8S103F3刚好没有PDO\PB0\PB1\PB2 这几个引脚.会不会是选择不了正确的芯片引起的啊

[答:] 一个DIE的芯片所以可以连接成功。型号不对,开放给客户的功能不同

[问:] STM8L能否用于无线手持RFID阅读器开发?

[答:] 特别适合

[问:] STM8L动态电流150μA/MHz这一水平还有可能会被迅速突破吗?

[答:] 新技术层出不穷,这个问题不好说。

但STM8L的水平(150μA/MHz)在今天确实是很不错的。

[问:] 使用SWIM接口是否占用内存资源?

[答:] 不占用,这是ST swim的优势之一

[问:] STM8L最大支持的程序和数据地址有多大?

[答:] 程序地址24位,数据8位

[问:] 该微处理器能支持视频编解码芯片么?

[答:] 支持与编解码芯片通信:-)

[问:] 支持的最大分辨率是多少?

[答:] 什么分辨率?

[问:] 為何上電復位功能是"零耗電"?

[答:] 经过特殊处理,此模块的功耗极低,当然不是绝对的零功耗,但是非常接近。

[问:] 请问你们8位MCU有和无线传感器方面的应用吗?还有一些简单的继电器控制的应用,抗干扰能力如何?

[答:] 有这方面的应用。STM8的抗干扰性强

[问:] 运行模式下BOR为何要被关闭,那么低电压检测不就没起作用?

[答:] 可以通过程序选择,由用户程序决定是否关闭。如果你的程序不要求低电压检测时可以关闭它,以进一步降低功耗。

[问:] 请问这个系列的MCU是否有带有码盘脉冲输入的型号吗?

[答:] STM8S有高级定时器,支持编码器输入STM8L的普通定时器也支持输入捕获,但需要接编码器的话,需软件完成部分功能

[问:] STM8L微控制器寻址空间有多大?

[答:] 16M Byte.

[问:] 看门狗的时钟来自哪里?

[答:] 不同看门狗可以根据需要选择不同的时钟

独立看门狗:LSI

窗口看门狗:采用系统时钟SYSCLK

[问:] STM8L上的SWTM引脚可作复用吗?

[答:] 可以用作普通I/O

[问:] 现阶段的stm8l支持点阵的lcd屏显示吗?

[答:] 不支持

[问:] STM8L系列微控制器的I/O能否直接支持SSTL电平?

[答:] 不支持

[问:] 能否简单介绍一下超低功耗的创新工艺,和传统cmos工艺有哪些不同之处?谢谢[答:] 主要是大幅降低了静态情况下的漏电流。

[问:] EMI滤波器会产生延迟吗?

[答:] sure,但要看EMI filtter的参数来评估是否对你的系统有实质性的影响

[问:] 这个产品抗冲击力在多大范围,适合多大加速度的区间应用?

[答:] 没有这方面的数据,要根据你的应用做一些测试。另外,STM8L在可靠性方面是非常好的。

[问:] EEPROM可覆寫次數為何?

[答:] 超过300K次。

[问:] STM8L15x的超低功耗演示板的JTAG,为何还要预留对STM32的调试和配置?[答:] 这是为后续产品预留的接口。

[问:] 该mcu可以做无刷直流电动机控制用吗?

[答:] STM8S有专门的电机控制模块,完全支持BLDC,ST 官网有相应的库供用户参考。STM8L虽然没有专门的电机控制模块,但其定时器支持简单的BLDC控制。

[问:] 以后会不会推出128K和256K的STM8L芯片?

[答:] 使用这么多的Flash的系统会比较复杂,对外设的要求也多。建议使用STM32L

[问:] 可不可以从北京或者上海申请样片?有没有赠送开发板机活动呢??什么时候能有?

[答:] 可以从我们的代理商申请样片。我们会考虑明年送STM8L的开发板,如果响应活跃的话。

[问:] 请问8L系列的IO驱动能力,和8S和STM32系列的相比有什么区别吗?

[答:] 可以达到20mA的驱动能力。

[问:] STM8L的时钟失效检测CSS和恢复机制需要配置吗?

[答:] CSS可以通过程序使能,一旦使能则不能被禁止直至下一次复位。

[问:] STM8L应用在医疗设备,手机等方面这些电器本身的辐射对ST有影响吗

[答:] STM8L的抗干扰性强。系统设计时也应做屏蔽。

[问:] 处理器的总线是如何架构的?

[答:] 哈佛架构。

[问:] 智能复位内部数据会造成丢失吗?

[答:] 不断电复位后RAM内容不会丢失。但如果在FLASH/EEPROM编程时,可能会造成数据丢失

[问:] 支持RS232,rs485?

[答:] 可以支持。

[问:] STM8L系列处理器的网络连接和那几种标准兼容?它的吞吐量有多高?

[答:] STM8L包含SPI,I2C,UART通信接口,速率需要视具体芯片而定

[问:] STM8L是否适合用于儿童玩具产品

[答:] 非常适合

[问:] STM8L系列兼容51的汇编语吗

[答:] 不兼容

[问:] STM8L有没有1V以下工作电源的产品?

[答:] 没有。STM8L功耗超低,适合电池供电的应用。

[问:] 向STM8L中写入代码的传输速度最快多大?

[答:] 1个block (一般为64byte)~3ms(芯片为空时)

~6ms(芯片非空时)

[问:] 时钟分配是通过什么途径来控制?

[答:] 通过寄存器控制时钟门控电路

[问:] STM8L内的ADC/DAC没有独立的电源引脚,会不会在动态运行时,对其精度有影响?

[答:] 因为STM8L的功耗非常低,ADC/DAC没有独立的电源引脚,不会在动态运行时,对精度有影响。

[问:] 内部RC振荡器的精度可满足串口通讯的要求吗?

[答:] 要看通讯速度(STM8 uart最快可达1M baud rate/fcpu=16Mhz),一般情况下完全满

足。

[问:] STM8L15LPBOARD的液晶资料哪里有呀?

[答:] 请到STM MCU官网查询https://www.doczj.com/doc/ef18152848.html,/mcu

[问:] 蓝牙设备的接口为SPI接口时该如何连接?

[答:] 可以使用STM8L的SPI接口直接连接。

[问:] stm8l是否主要工作在单片模式,支持扩展模式吗?

[答:] 如果扩展存储器,你可以通过SPI (SPI flash),如果和其他处理器通信,可以通过串口。

[问:] 内存可以升级吗?

[答:] 内部FLASH与EEPROM可以在线更新

[问:] ST芯片有温度补偿吗

[答:] STM8L15x有内部温度传感器,你可以通过程序实现温度补偿。芯片本身没有自动的温度补偿功能。

[问:] 当使用内部复位时,外部复位管脚有什么要求?可以当i/o用吗?

[答:] 可以当普通I/O口用,但需要适当配置。如果没有设置为普通I/O, 当内部复位发生时,reset脚也会输出复位信号

[问:] 如果使用12M晶振,执行一条mov指令需要多长时间?

[答:] 最少一个CYCLE,1/12MHZ

[问:] 通过采用最新架构,性能和功耗达到新高,请问采用的什么最新架构?

[答:] 改进型的哈佛架构

[问:] STM8L的抗电磁干扰能力如何?用不用什么特殊保护?

[答:] 符合IEC 61000标准。是否需要特殊保护,要看你的应用环境决定。

[问:] 请问STM8L151F3/K3大概何时能够提供样品?

[答:] 明年1月

[问:] FLASH的加密位是几位的?

[答:] STM8S/L 内部有96bit unique ID,可供用户作软件加密

[问:] STM8L中的DMA是什么?

[答:] 可以在内核不参与的情况下实现内存到外设与内存到内存之间的数据传输

[问:] STM8L复位IC是否可直接插入电路板取代现有组件?

[答:] STM8L是单片机不是复位IC

[问:] STM8L系列的的供电系统是如何设置的?

[答:] 稳定的电源、在1.8到3.6之间就行。

STM8L101最低工作电压可以达到1.65V。

STM8L15x在关闭BOR时,最低工作电压也可以达到1.65V。

[问:] STM8L系列中有固化好引导代码的产品吗?

[答:] 正在开发,即将支持。

[问:] 该产品系列质保时间是多久?

[答:] 在不超过单片机极限的使用条件下,程序可以保存20年。

[问:] STM8L在1.65V时进行编程,是否可靠?

[答:] 没有问题[2009-11-18 11:36:03]

[问:] 如果我使用贵公司的芯片STM8L进行教学使用,会不会难度较大?与一般的单片机,比如STC89C52等相比,难度如何?谢谢!

[答:] 不难,请联系我们的办事处。

[问:] 8L价位如何?大概在什么范围?

[答:] STM8L性价比非常有竞争力。具体价格,请接洽我们的代理商。

[问:] 功耗效率指标是如何定义的,用户对其开发板如何检测这个指标?

[答:] 功耗效率指标是mA/DMIPS,即定量电流所能完成的计算操作的多少。

[问:] 内部的RAM是什么结构,是否会受到时钟频率调整的影响?如果PLL暂时失锁,会不会导致程序跑飞掉?

[答:] 只要在datasheet规定的时钟范围内,时钟变化对其无影响。

STM8L目前内部没有PLL

[问:] 使用STM8L产品在PCB布线时,有什么特别要注意的地方,加入我使用工具自动布线,这样的产品会有什么问题吗?

[答:] 我们将会提供单片机布线的建议手册的

[问:] 推挽输出与开漏输出的区别?

[答:] 芯片内的驱动电路不一样,外部接口电路也不一样。

[问:] STM8L101系列内部好像没有RTC,这对其低功耗会有影响吗?

[答:] STM8L101因为没有内部RTC,比有内部RTC的STM8L15x的功耗更低。

[问:] 后备电源模块和主电源模块如何切换?

[答:] STM8L只有一个电源模块,没有切换的问题。

[问:] 针对片内的高速SRAM,有哪些方法降低动态和静态功耗?

[答:] 片内的SRAM本身耗电(静态功耗)就很小,而且只在使用时才有驱动时钟,这样就

降低了动态功耗。

[问:] STM8L活跃暂停模式的唤醒方式都有哪几种?

[答:] I/O中断、外设中断、AWU中断及复位

[问:] 对于STM8L动态运行时,FLash/SRAM那种功耗会比较大,如果只考虑功耗指标,专家推荐那种?

[答:] RAM中运行功耗更低。但RAM容量有限,最大也只有2K,可以用于运行一些需要循环等待或查询的程序段。

[问:] 全速运行的功耗是芯片的基本功耗还是包括基本外围接口的所有功耗?

[答:] 是芯片本身的功耗,不包括外部器件。

STM8L的数据手册中有详细的数据,区分片内外设工作和不工作,以及不同CPI频率的功耗。

[问:] 动态的电源管理,如何来管理不同操作点的切换?

[答:] 通过控制不同模块的电源开关实现。

[问:] 请问:我们需要把产品的调试设置参数保存到EEPROM中,以及运行调试需要与外部的设备进行通信;请问:建议使用I2C,UART,SPI?用哪一个通信方式比较简单实用呢?[答:] 都很方便,ST的bootloader使用的是UART。

[问:] stm8内核的运算效率似乎不错,那么如果和stm32比,同频率运行的话大约是stm32的百分之多少呢?

[答:] STM32的内核速度是1.25DMPIS,而STM8的内核速度大约是0.8DMIPS。

[问:] 程序在RAM与在FLASH上跑的速度差别如何?

[答:] 在STM8L中,程序在RAM与在FLASH上跑的速度没有差别。

[问:] CPU保持状态,是否采用停clock的方法。停外设,是否采用断power的方式?[答:] STM8L在halt/active halt下,电源也进入低功耗模式:MVR关闭,LPVR开启

[问:] STM8L对于输入电源的纹波有什么要求?

[答:] 对于不同的应用有不同的要求。例如STM8L支持的触摸按键应用对电源纹波的要求比一般的应用要高

[问:] 在所有模式下SRam都是ON吗?

[答:] 在电压不低于V ITMAX。停机模式下关闭RAM。

1.硬币模拟试验 源代码: clear; clc; head_count=0; p1_hist= [0]; p2_hist= [0]; n = 1000; p1 = 0.3; p2=0.03; head = figure(1); rand('seed',sum(100*clock)); fori = 1:n tmp = rand(1); if(tmp<= p1) head_count = head_count + 1; end p1_hist (i) = head_count /i; end figure(head); subplot(2,1,1); plot(p1_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.3试验次数N与正面向上比率的函数图'); head_count=0; fori = 1:n tmp = rand(1); if(tmp<= p2) head_count = head_count + 1; end p2_hist (i) = head_count /i; end figure(head); subplot(2,1,2); plot(p2_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.03试验次数N与正面向上比率的函数图'); 实验结果:

2.不同次数的随机试验均值方差比较 源代码: clear ; clc; close; rand('seed',sum(100*clock)); Titles = ['n=5时' 'n=20时' 'n=25时' 'n=50时' 'n=100时']; Titlestr = cellstr(Titles); X_n_bar=[0]; %the samples of the X_n_bar X_n=[0]; %the samples of X_n N=[5,10,25,50,100]; j=1; num_X_n = 100; num_X_n_bar = 100; h_X_n_bar = figure(1);

以下各题均要求编程实现,并将程序贴在题目下方。 1.从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。 clc;clear; zzs(1)=input('请输入正整数:');k=1; n=0;%素数个数 while zzs(k)~=0 flag=0;%是否是素数,是则为1 for yz=2:sqrt(zzs(k))%因子从2至此数平方根 if mod(zzs(k),yz)==0 flag=1;break;%非素数跳出循环 end end if flag==0&zzs(k)>1%忽略0和1的素数 n=n+1;sus(n)=zzs(k); end k=k+1; zzs(k)=input('请输入正整数:'); end disp(['你共输入了' num2str(k-1) '个正整数。它们是:']) disp(zzs(1:k-1))%不显示最后一个数0 if n==0 disp('这些数中没有素数!')%无素数时显示 else disp('其中的素数是:') disp(sus) end 2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求10000以内所有的完全数。 clc;clear;

wq=[];%完全数赋空数组 for ii=2:10000 yz=[];%ii的因子赋空数组 for jj=2:ii/2 %从2到ii/2考察是否为ii的因子 if mod(ii,jj)==0 yz=[yz jj];%因子数组扩展,加上jj end end if ii==sum(yz)+1 wq=[wq ii];%完全数数组扩展,加上ii end end disp(['10000以内的完全数为:' num2str(wq)])%输出 3.下列这组数据是美国1900—2000年人口的近似值(单位:百万)。 (1)若. 2c + = y+ 与试编写程序计算出上式中的a、b、c; 的经验公式为 t at bt y (2)若.bt 的经验公式为 y= 与试编写程序计算出上式中的a、b; y ae t (3)在一个坐标系下,画出数表中的散点图(红色五角星),c + =2中 ax bx y+拟合曲线图(蓝色实心线),以及.bt y=(黑色点划线)。 ae (4)图形标注要求:无网格线,横标注“时间t”,纵标注“人口数(百万)”,图形标题“美国1900—2000年的人口数据”。 (5)程序中要有注释,将你的程序和作好的图粘贴到这里。 clf;clc;clear %清除图形窗、屏幕、工作空间 t=1900:10:2000; y=[76 92 106 123 132 151 179 203 227 250 281]; p1=polyfit(t,y,2);%二次多项式拟合

遗传算法程序(一): 说明: fga.m 为遗传算法的主程序; 采用二进制Gray编码,采用基于轮盘赌法的非线性排名选择, 均匀交叉,变异操作,而且还引入了倒位操作! function [BestPop,Trace]=fga(FUN,LB,UB,eranum,popsize,pCross,pMutation,pInversion,options) % [BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation) % Finds a maximum of a function of several variables. % fmaxga solves problems of the form: % max F(X) subject to: LB <= X <= UB % BestPop - 最优的群体即为最优的染色体群 % Trace - 最佳染色体所对应的目标函数值 % FUN - 目标函数 % LB - 自变量下限 % UB - 自变量上限 % eranum - 种群的代数,取100--1000(默认200) % popsize - 每一代种群的规模;此可取50--200(默认100) % pcross - 交叉概率,一般取0.5--0.85之间较好(默认0.8) % pmutation - 初始变异概率,一般取0.05-0.2之间较好(默认0.1) % pInversion - 倒位概率,一般取0.05-0.3之间较好(默认0.2) % options - 1*2矩阵,options(1)=0二进制编码(默认0),option(1)~=0十进制编 %码,option(2)设定求解精度(默认1e-4) % % ------------------------------------------------------------------------ T1=clock; if nargin<3, error('FMAXGA requires at least three input arguments'); end if nargin==3, eranum=200;popsize=100;pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==4, popsize=100;pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==5, pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==6, pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==7, pInversion=0.15;options=[0 1e-4];end if find((LB-UB)>0) error('数据输入错误,请重新输入(LB

图论实验三个案例 单源最短路径问题 Dijkstra 算法 Dijkstra 算法是解单源最短路径问题的一个贪心算法。其基本思想是,设置一个顶点集合S 并不断地作贪心选择来扩充这个集合。一个顶点属于集合S 当且仅当从源到该顶点的最短路径长度已知。设v 是图中的一个顶点,记()l v 为顶点v 到源点v 1的最短距离,,i j v v V ?∈,若 (,)i j v v E ?,记i v 到j v 的权ij w =∞。 Dijkstra 算法: ① 1{}S v =,1()0l v =;1{}v V v ??-,()l v =∞,1i =,1{}S V v =-; ② S φ=,停止,否则转③; ③ ()min{(),(,)} j l v l v d v v =, j v S ∈,v S ?∈; ④ 存在1 i v +,使 1()min{()} i l v l v +=,v S ∈; ⑤ 1{} i S S v +=U , 1{} i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果121n n v v v v -L 是从1v 到 n v 的最 短路径,则 121 n v v v -L 也必然是从1v 到 1 n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元素表 示顶点i v 到j v 的权ij w ,若i v 到j v 无边,则realmax ij w =,其中realmax 是MATLAB 常量,表示最大的实数+308)。 function re=Dijkstra(ma) %用Dijkstra 算法求单源最短路径 %输入参量ma 是距离矩阵 %输出参量是一个三行n 列矩阵,每列表示顶点号及顶点到源的最短距离和前顶点 n=size(ma,1);%得到距离矩阵的维数 s=ones(1,n);s(1)=0;%标记集合S 和S 的补 r=zeros(3,n);r(1,:)=1:n;r(2,2:end)=realmax;%初始化 for i=2:n;%控制循环次数 mm=realmax; for j=find(s==0);%集合S 中的顶点 for k=find(s==1);%集合S 补中的顶点

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

NSGA-II 算法实例 目前的多目标优化算法有很多,Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II)无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。 一、数值例子 多目标优化问题 42422 11211122124224212212112 12min (,)10min (,)55..55 f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤?二、Matlab 文件 1.适应值函数m 文件: function y=f(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2);2.调用gamultiobj 函数,及参数设置: clear clc fitnessfcn=@f; %适应度函数句柄nvars=2; %变量个数lb=[-5,-5]; %下限ub=[5,5]; %上限A=[];b=[];%线性不等式约束 Aeq=[];beq=[];%线性等式约束 options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations',200,'stallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto); %最优个体系数paretoFraction 为0.3;种群大小populationsize 为100,最大进化代数generations 为200, %停止代数stallGenLimit 为200,适应度函数偏差TolFun 设为1e-100,函数gaplotpareto :绘制Pareto 前端 [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)

遗传算法的M A T L A B 程序实例

遗传算法的程序实例 如求下列函数的最大值 f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] 一、初始化(编码) initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 代码: %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 二、计算目标函数值 1、将二进制数转化为十进制数(1) 代码: %Name: decodebinary.m %产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和例数 for i=1:py pop1(:,i)=2.^(py-1).*pop(:,i); py=py-1; end pop2=sum(pop1,2); %求pop1的每行之和 2、将二进制编码转化为十进制数(2) decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置。(对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1),参数1ength表示所截取的长度(本例为10)。 代码: %Name: decodechrom.m %将二进制编码转换成十进制 function pop2=decodechrom(pop,spoint,length) pop1=pop(:,spoint:spoint+length-1); pop2=decodebinary(pop1); 3、计算目标函数值 calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。

22 212312132312min f (x)x 2x 3x x x 2x x x x 4x 6x =+++-+-- . 123123x 2x x 4 x ,x ,x 0++≤≥ 取初始点(1)T x (0,0,0)=,通过Matlab 编程实现求解过程。 公用函数如下: 1、function [f,x]=func %设置目标函数 syms x1 x2 x3; f=x1^2+2*x2^2+3*x3^2+x1*x2-2*x1*x3+x2*x3-4*x1-6*x2; x=[x1,x2,x3]; end 2、function f_val=fval(x0) %求目标函数值 x0=transpose(x0); [f,x]=func; f_val=subs(f,x,x0); end 3、function s=diff_val(x0) %求目标函数梯度 [f,x]=func; grad=jacobian(f,x); s=subs(grad,x,x0); end 4、function h=fmin(x0,d0,vmax) %求函数最小值 [f,x]=func; syms h ; a=x0+h*d0; f_val=inline(subs(f,x,a)); if vmax==inf min_h=fminbnd(f_val,0,10000); else min_h=fminbnd(f_val,0,vmax); end h=min_h; end Zoutendijk 方法主函数 function [X0,f_val]=zoutendijk(A,b,x0,Aeq,beq) %自定义函数diff_val(x0)作用是求所给函数在x0出的偏导数

程序代码:(代码标记[code]...[/code] ) 1-32是:图形应用篇 33-66是:界面设计篇 67-84是:图形处理篇 85-100是:数值分析篇 实例1:三角函数曲线(1) function shili01 h0=figure('toolbar','none',... 'position',[198 56 350 300],... 'name','实例01'); h1=axes('parent',h0,... 'visible','off'); x=-pi:0.05:pi; y=sin(x); plot(x,y); xlabel('自变量X'); ylabel('函数值Y'); title('SIN( )函数曲线'); grid on 实例2:三角函数曲线(2) function shili02 h0=figure('toolbar','none',... 'position',[200 150 450 350],... 'name','实例02'); x=-pi:0.05:pi; y=sin(x)+cos(x); plot(x,y,'-*r','linewidth',1); grid on xlabel('自变量X'); ylabel('函数值Y'); title('三角函数');

实例3:图形的叠加 function shili03 h0=figure('toolbar','none',... 'position',[200 150 450 350],... 'name','实例03'); x=-pi:0.05:pi; y1=sin(x); y2=cos(x); plot(x,y1,... '-*r',... x,y2,... '--og'); grid on xlabel('自变量X'); ylabel('函数值Y'); title('三角函数'); 实例4:双y轴图形的绘制 function shili04 h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例04'); x=0:900;a=1000;b=0.005; y1=2*x; y2=cos(b*x); [haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot'); axes(haxes(1)) ylabel('semilog plot'); axes(haxes(2)) ylabel('linear plot'); 实例5:单个轴窗口显示多个图形 function shili05 h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例05'); t=0:pi/10:2*pi;

2008-10-31 19:32 支持向量机Matlab示例程序 四种支持向量机用于函数拟合与模式识别的Matlab示例程序 [1]模式识别基本概念 模式识别的方法有很多,常用有:贝叶斯决策、神经网络、支持向量机等等。特别说明的是,本文所谈及的模式识别是指“有老师分类”,即事先知道训练样本所属的类别,然后设计分类器,再用该分类器对测试样本进行识别,比较测试样本的实际所属类别与分类器输出的类别,进而统计正确识别率。正确识别率是反映分类器性能的主要指标。 分类器的设计虽然是模式识别重要一环,但是样本的特征提取才是模式识别最关键的环节。试想如果特征矢量不能有效地描述原样本,那么即使分类设计得再好也无法实现正确分类。工程中我们所遇到的样本一般是一维矢量,如:语音信号,或者是二维矩阵,如:图片等。特征提取就是将一维矢量或二维矩阵转化成一个维数比较低的特征矢量,该特征矢量用于分类器的输入。关于特征提取,在各专业领域中也是一个重要的研究方向,如语音信号的谐振峰特征提取,图片的PCA特征提取等等。 [2]神经网络模式识别 神经网络模式识别的基本原理是,神经网络可以任意逼近一个多维输入输出函数。以三类分类:I、II、III为例,神经网络输入是样本的特征矢量,三类样本的神经网络输出可以是[1;0;0]、[0;1;0]、[0;0;1],也可以是[1;-1;-1]、[-1;1;-1]、[-1;-1;1]。将所有样本中一部分用来训练网络,另外一部分用于测试输出。通常情况下,正确分类的第I类样本的测试输出并不是[1;0;0]或是[1;-1;-1],而是如[;0;]的输出。也是就说,认为输出矢量中最大的一个分量是1,其它分量是0或是-1就可以了。 [3]支持向量机的多类分类 支持向量机的基本理论是从二类分类问题提出的。我想绝大部分网友仅着重于理解二类分类问题上了,我当初也是这样,认识事物都有一个过程。二类分类的基本原理固然重要,我在这里也不再赘述,很多文章和书籍都有提及。我觉得对于工具箱的使用而言,理解如何实现从二类分类到多类分类的过渡才是最核心的内容。下面我仅以1-a-r算法为例,解释如何由二类分类器构造多类分类器。 二类支持向量机分类器的输出为[1,-1],当面对多类情况时,就需要把多类分类器分解成多个二类分类器。在第一种工具箱LS_SVMlab中,文件中实现了三类分类。训练与测试样本分别为n1、n2,它们是3 x 15的矩阵,即特征矢量是三维,训练与测试样本数目均是15;由于是三类分类,所以训练与测试目标x1、x2的每一分量可以是1、2或是3,分别对应三类,如下所示: n1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]; x1 = [1*ones(1,5),2*ones(1,5),3*ones(1,5)];???? n2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]; x2 = [1*ones(1,5),2*ones(1,5),3*ones(1,5)];???? 1-a-r算法定义:对于N类问题,构造N个两类分类器,第i个分类器用第i类训练样本作为正的训练样本,将其它类的训练样本作为负的训练样本,此时分类器的判决函数不取符号函数sign,最后的输出是N个两类分类器输出中最大的那一类。

一个实例搞定MATLAB界面编程 作者:彭军 邮件:pjun9@https://www.doczj.com/doc/ef18152848.html, 博客:https://www.doczj.com/doc/ef18152848.html,/pengjun 下面请跟我一步一步做一个图像处理的程序,如果您坚持做完这个实例,我想MATLAB界面编程对您而言,就没有什么难度了。当然,我这里说的是,您首先要有一定的MATLAB 编程基础。还有,我的MATLAB版本是2008a。在2008a以前的版本中没有工具栏编辑器,如果需要工具栏要手动写程序,这个我就不多讲了。好了,废话少说,跟我来吧! 在MATLAB的命令窗口(Command Window)中运行guide命令,来打开GUIDE界面,如下: 然后,选择空模板(Blang GUI),点击OK,即可打开GUIDE的设计界面,如下:

点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,如下: 在Menu Bar中新建一个菜单项,名字为“文件”,其他设置请看下图: 在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:

如果需要在菜单项“退出”上面添加一个分割线的话,选中“Separator above this item”就行了。

保存我的界面为pjimage.fig.保存完毕之后,会自动打开pjimage.m 文件,而我们所有的程序都是要写在这个M 文件里面的。在编程中,我们的每一个鼠标动作都对应一个Callback 函数。那么我们的菜单项也是如此的。 在界面上,单击鼠标右键选择“Property Inspector ”,即可打开属性窗口。当我们点击不同的 然后,点击工具栏的保存按钮。之后,点击工具栏的运行按钮(Run Figure)。注意,工具栏的图标都会有提示的,像运行按钮的提示就是Run Figure.我们会看到如下的界面: 那说明,我们保存的.fig 文件的目录不是当前目录,但是没关系啊,我们只要点击“Change Directory ”来改变当前目录。当然,如果你想把当前目录添加到MATLAB 路径也可以,那就点击“Add to Path ”就OK 了。我在这里推荐点击“Change Directory ”,因为没有什么太大必要把其添加到MATLAB 路径中,一般是工具箱需要添加或者我们的函数或程序写完了,而在MATLAB 的命令窗口找不到我们的函数的时候,我们可以将函数或程序所在的目录添加到MATLAB 路径。 总之吧,点那个按钮,要看个人的爱好了。不管点击两个按钮的那一个按钮,都会正确的运行程序的。 我们的程序运行时的样子,是这样的:

一、在同一坐标系内,分别用红色实线和蓝色点划线绘制曲线y1(t)=e0.1sin(0.3πt)和y2(t)=2e -0.5cos(0.6πt),其中t ∈[0, 3],并用星号标记出两条曲线的交叉点。请写出实现上述功能的M 文件程序代码,并给出每条语句注释说明。 t=0:0.01:3%t 取值[0,3]步长为0.01 y1=exp(0.1)*sin(0.3*pi*t)%写出公式y1(t)=e0.1sin(0.3πt) plot(t,y1,'r-')%显示该图形 hold on%继续显示 y2=2*exp(-0.5)*cos(0.6*pi*t)%写出公式y2(t)=2e -0.5cos(0.6πt) plot(t,y2,'b-.') %显示该图形 r0=abs(y2-exp(0.1)*sin(0.3*pi*t))<=0.015%设定差值的绝对值<=0.015 yy=r0.*y1;xx=r0.*t;plot(xx(r0~=0),yy(r0~=0),'r*')%用*标记交叉点 结果如下: 00.51 1.52 2.53 -1.5 -1 -0.5 0.5 1 1.5 二、求解多项式3x4-8x2+x -10除以多项式x2+x+3;计算方程3x4-8x2+x -10=0的解。请编写实现上述运算的M 程序代码,并给出每条语句注释说明。 a=[3 0 -8 1 -10]% 3x4-8x2+x -10的系数矩阵 b=[1 1 3]% x2+x+3的系数矩阵 [q,r]=deconv(a,b)%求根和余。q 为根,r 为余 结果如下: q = 3 -3 -1 4 r = 0 0 0 24 32

Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件:File/New/GUI 如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下

图所示; 布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。 1. 2. 3.function edit1_Callback(hObject, eventdata, handles) 4.% hObject handle to edit1 (see GCBO) 5.% eventdata reserved - to be defined in a future version of MATLAB

6.% handles structure with handles and user data (see GUIDATA) 7.% Hints: get(hObject,'String') returns contents of edit1 as text 8.% str2double(get(hObject,'String')) returns contents of edit1 as a double 复制代码 然后在上面这段代码的下面插入如下代码: 1. 2.%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0if (isempty(input)) set(hObject,'String','0')endguidata(hObject, handles); 复制代码 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为edit2_Callback添加同样一段代码 5 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。 用3中同样的方法在m文件中找到pushbutton1_Callback代码段 如下; 1.function pushbutton1_Callback(hObject, eventdata, handles) 2.% hObject handle to pushbutton1 (see GCBO) 3.% eventdata reserved - to be defined in a future version of MATLAB 4.% handles structure with handles and user data (see GUIDATA) 复制代码

Matlab 程序代码 绘制 1.5sin(7.75)7.75 t y e t -= 的函数图象。 fv clear; t=0::10; f1=10/sqrt.*exp*t); f2=sin(sqrt.*t); y=f1.*f2; plot(t,y,'-k',t,y,'ok'); xlabel('t');ylabel('y(t) ');title('函数图像') axis([-2 10 2]) 拉氏变换 clear; clc; syms s t fs1 fs2 fs3 ft1 ft2 ft3; L=1,C=,R=[ 3 5]; h1=1/(L*C*s^2+R(1)*C*s+1); h2=1/(L*C*s^2+R(2)*C*s+1);

h3=1/(L*C*s^2+R(3)*C*s+1); fs1=h1*(1/s); fs2=h2*(1/s); fs3=h3*(1/s); ft1=ilaplace(fs1,s,t); ft2=ilaplace(fs2,s,t); ft3=ilaplace(fs3,s,t); ezplot(t,ft1); hold on; ezplot(t,ft2); hold on; ezplot(t,ft3); 信号编码 对[1 1 0 1 1 1 0 1 0 0 1]进行编码。 clear; clc; c=[1 1 0 1 1 1 0 1 0 0 1] for i=1:length(c) if i==1 d1(i)=0;d2(i)=0; elseif i==2 d1(i)=c(i-1);d2(i)=c(i-1); elseif i==3

求一维序列的信息熵(香浓熵)的matlab程序实例 对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0-255)出现的概率,就可以计算出信息熵。 但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的,不会是(0-255)这么确定,如果进行域值变换,使其转换到一个整数范围的话,就会丢失数据,请高手指点,怎么计算。 比如数字信号是x(n),n=1~N (1)先用Hist函数对x(n)的赋值范围进行分块,比如赋值范围在0~10的对应第 一块,10~20的第二块,以此类推。这之前需要对x(n)做一些归一化处理 (2)统计每一块的数据个数,并求出相应的概率 (3)用信息熵公式求解 以上求解方法获得的虽然是近似的信息熵,但是一般认为,这么做是没有问题的 求一维序列的信息熵的matlab程序代码如下:(已写成调用的函数形式) 测试程序: fs=12000; N=12000; T=1/fs; t=(0:N-1)*T; ff=104; sig=0.5*(1+sin(2*pi*ff*t)).*sin(2*pi*3000*t)+rand(1,length(t)); Hx=yyshang(sig,10) %———————求一维离散序列信息熵matlab代码 function Hx=yyshang(y,duan) %不以原信号为参考的时间域的信号熵 %输入:maxf:原信号的能量谱中能量最大的点 %y:待求信息熵的序列 %duan:待求信息熵的序列要被分块的块数 %Hx:y的信息熵 %duan=10;%将序列按duan数等分,如果duan=10,就将序列分为10等份 x_min=min(y); x_max=max(y); maxf(1)=abs(x_max-x_min); maxf(2)=x_min; duan_t=1.0/duan; jiange=maxf(1)*duan_t; % for i=1:10 % pnum(i)=length(find((y_p>=(i-1)*jiange)&(y_p

Matlab非线性方程求解器fsolve总结 fsolve是采用最小二乘法来求解非线性方程。它的一般求解方式为: X=FSOLVE(FUN,X0,OPTIONS) 其中,fun是要求解的非线性方程,X0是变量初值,options由optimset函数产生的结构体,用于对优化参数的设置,可以省略(采用默认值)。 Fsolve可以求解简单的一维非线性方程,如: x = fsolve(@myfun,[0.5 2 4],optimset('Display','iter')); %求解在初值分别为0.5,2和4时方程的解 其中,函数myfun的定义为: function F = myfun(x) F = sin(x); Fsolve还可以求解大型的非线性方程组,如 x0 = [51.6;rand;unifrnd(-1,1);rand]; h=optimset; h.MaxFunEvals=20000; h.MaxIter=5000; h.Display='off'; [p,fval] = fsolve(@f,x0,options); 此时,方程组可以写成矩阵形式: function F=f(x) F=[x(1)+x(2)*(1-exp(-(x(3)*(0)^x(4))))-51.61; x(1)+x(2)*(1-exp(-(x(3)*(9.78)^x(4))))-51.91; x(1)+x(2)*(1-exp(-(x(3)*(30.68)^x(4))))-53.27; x(1)+x(2)*(1-exp(-(x(3)*(59.7)^x(4))))-59.68;]; 自编基于龙格库塔法的Matlab数值积分函数 function varargout = rkkt(varargin) %============================================== % 采用四阶龙格库塔法数值积分 % rkkt(F,x0,t0,tfinal,ts) % F为函数名 % x0为积分变量的初始值 % t0为积分初始时刻 % tfinal为积分终止时刻 % ts为积分步长 % example,如果有一个函数名为foo,则,求解指令为 % rkkt(@foo,x0,t0,tfinal,tspan);

数字信号处理Matlab实现实例(推荐给学生)

数字信号处理Matlab 实现实例 第1章离散时间信号与系统 例1-1 用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度');

图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。 例1-2 用MATLAB计算差分方程 当输入序列为时的输出结果 。 解 MATLAB程序如下: N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度') 图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。

例1-3 用MATLAB 计算例1-2差分方程 所对应的系统函数的DTFT 。 解 例1-2差分方程所对应的系统函数为: 123 123 0.80.440.360.02()10.70.450.6z z z H z z z z -------++= +-- 其DTFT 为 23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e e e e ωωωω ωωω --------++= +-- 用MATLAB 计算的程序如下: k=256;

function [y,val]=QACS tic load att48 att48; MAXIT=300; % 最大循环次数 NC=48; % 城市个数 tao=ones(48,48);% 初始时刻各边上的信息最为1 rho=0.2; % 挥发系数 alpha=1; beta=2; Q=100; mant=20; % 蚂蚁数量 iter=0; % 记录迭代次数 for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((att48(i,2)-att48(j,2))^2+(att48(i,3)-att48(j,3))^2); end end bestroute=zeros(1,48); % 用来记录最优路径 routelength=inf; % 用来记录当前找到的最优路径长度 % for i=1:mant % 确定各蚂蚁初始的位置 % end for ite=1:MAXIT for ka=1:mant %考查第K只蚂蚁 deltatao=zeros(48,48); % 第K只蚂蚁移动前各边上的信息增量为零 [routek,lengthk]=travel(distance,tao,alpha,beta); if lengthk

Matlab 应用例题选讲 仅举一些运用MATLAB 的例子,这些问题在数学建模中时常遇到,希望能帮助同学们在短时间内方便、快捷的使用MATLAB 解决数学建模中的问题,并善用这一工具。 常用控制命令: clc :%清屏; clear :%清变量; save :%保存变量; load :%导入变量 一、利用公式直接进行赋值计算 本金P 以每年n 次,每次i%的增值率(n 与i 的乘积为每年增值额的百分比)增加,当增加到r ×P 时所花费的时间T 为:(利用复利计息公式可得到下式) ) 01.01ln(ln )01.01(i n r T i P P r nT += ?+=?(12,5.0,2===n i r ) MATLAB 的表达形式及结果如下: >> r=2;i=0.5;n=12; %变量赋值 >> T=log(r)/(n*log(1+0.01*i)) 计算结果显示为: T = 11.5813 即所花费的时间为T=11.5813 年。 分析:上面的问题是一个利用公式直接进行赋值计算问题,实际中若变量在某个范围变化取很多值时,使用MATLAB ,将倍感方便,轻松得到结果,其绘图功能还能将结果轻松的显示出来,变量之间的变化规律将一目了然。 若r 在[1,9]变化,i 在[0.5,3.5]变化;我们将MATLAB 的表达式作如下改动,结果如图1。 r=1:0.5:9; i=0.5:0.5:3.5; n=12; p=1./(n*log(1+0.01*i)); T=log(r')*p; plot(r,T) xlabel('r') %给x 轴加标题 ylabel('T') %给y 轴加标题 q=ones(1,length(i)); text(7*q-0.2,[T(14,1:5)+0.5,T(14,6)-0.1,T(14,7)-0.9],num2str(i')) r T 图1

相关主题
文本预览
相关文档 最新文档