完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一台STM8L Discovery板,但我决定使用STM8L101芯片。这个芯片是该芯片的子集吗?
STM8L152C6T6在didcovery板上使用?游泳是否在两个芯片上使用相同的IO端口/引脚? 或者我需要在STM8L 101 EVAL板上再花费100英镑? 我正在尝试建立一个新项目,所以我试图让我的头脑里有很多东西。我也是一个老家伙,他只是想要开始而不是被圈子抽出来打开网页! 德尔 (脾气暴躁的模式关闭) #STM * L101 以上来自于谷歌翻译 以下为原文 I've got an STM8L Discovery board, but I've decided to use the STM8L101 chip. Is this chip a subset of the STM8L152C6T6 used on the didcovery board? Does the swim use the same IO port/pins on both chips? Or do I need to spend another �100 on an STM8L 101 EVAL board??? I'm trying to set up a new project so I'm trying to get my head round tons of stuff. I'm also an old bloke who just wants to get going rather than be circle jerked round enless web pages! Del (grumpy mode off) #stm*l101 |
|
相关推荐
4个回答
|
|
嗨Derek。
STM8L101微型器件是低密度器件,而STM8L152C6T6焊接在STM8L发现板上是中密度器件。 STM8L中密度器件比STM8L101“老”,其内部外设更先进(例如,它们的RTC具有亚秒级字段,它们可以更好地同步,......)。 如果您从一开始就不需要这些高级功能,那么您可以开始使用STM8L Discovery板开发项目,并在后来的原型中使用STM8L101 micro,因为它们几乎可以共享任何功能。 您还可以使用STM8L Discovery板的SWIM编程接口,因此无需购买STM8L 101评估板(在我看来)。 EtaPhi 以上来自于谷歌翻译 以下为原文 Hi Derek. STM8L101 micros are low-density devices, while the STM8L152C6T6 which is soldered in a STM8L Discovery board is a medium density one. STM8L medium density devices are ''older'' than STM8L101s, whose internal peripherals are more advanced (for instance, their RTC has a subsecond field, they can be better synchronized, ...). If you don't need those advanced features from the start, you can begin developing your project with a STM8L Discovery board and use a STM8L101 micro in a later prototype, because they share almost any feature. You can also use the SWIM programming interface of the STM8L Discovery board, so there is no need of acquiring a STM8L 101 Eval board (in my opinion). EtaPhi |
|
|
|
感谢那。我知道,一旦我开始,它会没事的。我只是讨厌爬上新微观的学习曲线。我也讨厌“C”IMO汇编程序对于小规模应用来说非常简单,因为您可能需要为自己的硬件编写自己的驱动程序...锁定螺线管,电机等。
消息无法发布...预期';'在每一行的末尾 在任何地方都缺少'{' 德里克;-) 以上来自于谷歌翻译 以下为原文 Thanks for that. I know once I get going it will be fine. I just hate crawling up the learning curve for a new micro. I also hate 'C' IMO assembler is so much simple for small scale applications as you'll prob need to write your own drivers for your own hardware... latching solenoids, motors etc. Message could not post... expected ';' at the end of every line Missing '{ ' just about everywhere Derek ;-) |
|
|
|
德里克,我同意你的意见。
我用汇编程序开发我的STM8应用程序,因此我可以与您和本论坛分享我学到的知识。 STM8汇编程序是稳定的,因为自2008年以来没有任何变化,即STM8的引入。 STM8外设随着时间的推移而发展。 因此,学习曲线永远不会停止,但它的结束是平坦的,因为所有变化都很小。 例如,第一STM8设备(例如STM8S系列)没有DMA。 如果这些“旧”设备的应用程序使用ADC,则必须处理EOC(转换结束)中断。 EOC中断处理程序必须读取ADC数据寄存器,更改模拟输入通道,并开始新的采集。 DMA在“新”设备中处理这个问题。 您可以选择必须获取哪个模拟通道,DMA将其采样值存储在您的数据结构中。 即使ADC没有改变,DMA也会改变它的使用方式,所以总有一点需要学习。 新微型计算机最陡峭的学习曲线不是因为它的核心,而是它的外围设备。 “C”语言和ST固件库缩短了学习曲线,但减少了您的理解和选择。 正如Arduino所发生的那样,图书馆让用户无法了解微观如何工作, 这些工具使开发新应用程序变得容易,但隐藏了一些宝贵的信息。 例如,CFG_GCR寄存器中有一位控制STM8内核执行WFI指令时会发生什么。 当该位被激活时(即,当核心激活电平为1时),中断可以唤醒内核,但是当它将执行下一个IRET指令时,主不会恢复。 这允许快速中断响应,因为不必将上下文压入堆栈,但是当更多中断挂起时会发生什么? 标准解决方案是FIFO策略:执行第一个到达的中断。 当其代码以IRET结束时,具有最高优先级的挂起中断将被执行,依此类推,直到所有待处理的中断都被服务为止。 这很好,直到没有慢速外设(例如RTC)阻塞中断处理程序和另一个中断处理程序(例如USART接收)得到如此多的延迟以至于发生错误。 我的汇编程序解决方案很简单:在使用RIM指令在慢速处理程序中启用中断之前,我的代码会更改激活级别并在执行IRET指令之前对其进行恢复。 这个解决方案的'C'版本就像汇编程序一样简单(函数调用和带寄存器的两个分配操作),但是如果你不知道(或者不想知道)库中发生了什么,你无法修复一些很少发生的缓冲区溢出错误。 学习外围设备如何工作是一种奖励。 STM32和STM8微型共享相同的外设。 因此,两个平台中的TIM1行为相同。 中间件,例如SD卡FAT16 / FAT32支持,或RTOS可用性,在汇编器和'C'之间产生差异,因为没有汇编器版本。 出于这个原因,我必须编写我的FAT16 / FAT32驱动程序以支持我的应用程序中的microSD。 这需要时间,因为你不能重复别人的工作...... 虽然STM8核心是“汇编程序友好”,但STM32核心并不是那么友好,因为'C'编译器代码优化是如此之好,以至于开发一些汇编代码是浪费时间。 您仍然需要学习ARM汇编程序,以便有时了解编译器输出,但不需要编写任何汇编程序行! 汇编程序的使用和知识正在减少,因为STM32F0xx和STM8xx微软之间的价格差异非常小(几美分),浪费时间和金钱来使用8位设备毫无意义。 当然,'C'编译器和工具有所不同。 STM8汇编器和工具是免费的,无限制的和预先打包的,因此它们的升级非常简单和便宜。 如果您不想在每次需要新版本来修复工具链错误时下载,安装和配置STM32编译器,调试器和工具,则必须从软件供应商处购买... 您的经历可能会有所不同,但我仍然相信汇编知识会有所作为! BR EtaPhi 以上来自于谷歌翻译 以下为原文 I agree with you, Derek. I develop my STM8 applications in assembler, thus I can share what I learned with you and this forum. STM8 assembler is stable, since there has been no change since 2008, i.e. the STM8 introduction. STM8 peripherals evolve with time. The learning curve therefore never stops but its end is flat because all changes are small. For instance, first STM8 devices (e.g. STM8S family) have got no DMA. If an application for these ''old'' devices uses ADC, it had to handle EOC (End Of Conversion) interrupts. The EOC interrupt handler has to read ADC data registers, change analog input channel, and start a new acquisition. The DMA takes care of this in ''new'' devices. You select which analog channel has to be acquired and DMA stores their sampled value in your data structure. Even if ADC didn't change, the DMA changes how it's used, so there is always a bit to learn. The steepest learning curve for a new micro isn't due to its core, but to its peripherals. The 'C' language and ST firmware library shorten the learning curve, but decrease your understanding and options. As it happens for Arduino, where a library frees users from knowing how a micro works, these tools make it easy to develop a new application but hide you some precious informations. For instance, there is a bit in CFG_GCR register which controls what happens when the STM8 core is executing a WFI instruction. When this bit is activated (i.e. when the core activation level is one), an interrupt can wake the core up, but when it will execute the next IRET instruction, the main will not resume. This allows a fast interrupt response, because no context has to be pushed onto the stack, but what happens when more interrupts are pending? The standard solution is a FIFO policy: the first arrived interrupt is executed. When its code ends with an IRET, the pending interrupt with the highest priority gets executed and so on until all pending ones are serviced. This is fine until no slow peripheral (e.g. RTC) blocks an interrupt handler and another interrupt handler (e.g. USART receive) gets so much delayed that an error happens. My assembler solution is simple: before enabling interrupts inside a slow handler with a RIM instruction, my code changes the activation level and resores it before executing an IRET instruction. The 'C' version of this solution is as simple as the assembler one (a function call and two assigment operations with a register), but if you don't know (or don't want to know) what happens inside a library, you can't fix some buffer overrun errors that seldom happen. There is a reward in learning how peripherals work. STM32 and STM8 micros share the same peripherals. TIM1 behaviour is therefore the same in both platforms. The middleware, for instance SD Cards FAT16/FAT32 support, or RTOS availability, makes a difference between assembler and 'C', since there is no assembler version. For this reason, I had to write my FAT16/FAT32 drivers to support microSD in my application. This takes time, because you can't reuse someone else work... While the STM8 core is ''assembler friendly'', the STM32 one isn't so much friendly because the 'C' compiler code optimization is so good that it's a time waste to develop some assembler code. You still have to learn ARM assembler to sometime understand compiler output, but there is no need to write any assembler line! Assembler use and knowledge is decreasing because the price difference between STM32F0xx and STM8xx micros is so small (some USD cents) that there is no point in wasting time and money to use an 8 bit device. Of course, the 'C' compiler and tools make a difference. STM8 assembler and tools are free, unlimited and pre-packaged, so their upgrade is very simple and cheap. STM32 compilers, debugger and tools must be purchased from a software vendor if you don't want to download, install and configure them every time you need a new version to fix a toolchain bug... Your experience may be different, but I still believe that assembler knowledge makes a difference! BR EtaPhi |
|
|
|
我有一台STM8S Discovery板,但我也有STM8L101芯片。
我找不到有关如何将我的芯片连接到电路板进行编程的信息。 请通过链接或文字帮助我! 以上来自于谷歌翻译 以下为原文 I've got an STM8S Discovery board, but I've also the STM8L101 chip. I cannot find info how connect my chip to the board for programming. Please help me by link or words! |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2632 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3607 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:36 , Processed in 1.027408 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号