问题标签 [stm8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
61 浏览

c - 如何在拆分部分中链接 IAR 中更密集的代码?

我在IAR Embedded Workbench for STM8 (版本 3.11.1)上为STM8L151G6制作程序,我需要将指令放在 0x008426 地址。我这样做。在 C 代码中:JPF 0xf000

在 .icf 文件中:

链接器以以下方式构建代码:

这是正确的。但是范围 [从 0x008080 到 0x00842b] 是空的,所以代码并不紧凑。我松了近1K字节,对于stm8 MCU来说太多了。例如 object float.o (size 0x3a6) 可以放在这个范围内,但链接器不会这样做。有什么方法可以告诉链接器执行更密集的代码并用对象填充空的部分。谢谢你。

0 投票
2 回答
57 浏览

c - 如何将数字的最后一位转换为字符并在 LCD 上显示?

我最近买了一个 STM8 MCU,它有内置功能LCD_GLASS_DisplayString("STRING")

正如您在下面看到的那样,该函数的问题是我无法直接在其上显示整数:

我怎样才能修改它以便我可以直接发送整数?另外,我不确定我可以使用任何库,所以纯 C 会有所帮助。

我在想这样的事情,但没有奏效:

关于如何使它工作的任何想法?在将整数发送到 LCD 之前,我需要创建一个函数来显示整数或将它们转换为字符串。代码是纯 C,因为我现在正在编程的是纯驱动程序。

0 投票
2 回答
180 浏览

c++ - STM8作为SPI从机无法发回数据

我已经用 STM8L 构建了一个原型板,我希望它可以用作和配置为 SPI 从机。我正在用树莓派作为主人对其进行测试。

为此,我使用 ST 提供的名为“STM8 Standard Peripherals Library”的库,但文档很差,并没有说明如何做到这一点......

我可以毫无问题地从 Raspberry Pi 发送数据并在 STM8 上接收它,但我无法从 MISO 上的 STM8 将任何数据发送回覆盆子。

有人知道我如何将一些数据发送回 Raspberry Pi 主机吗?我的错误在哪里?

这是主要代码:

RPi 简单代码:

谢谢您的帮助!:)

编辑:我认为错误出在 uC 代码中,因为 spi 数据寄存器在我读取后仍然包含主机发送的数据。即使尝试直接在寄存器中写入,我也无法更改它。

另外:设备只包含一个SPI数据寄存器是否正常?如果没有一个用于 MOSI (Rx) 和一个用于 MISO(Tx),它应该如何是全双工的?我想我对 SPI 有一些不明白的地方。我对这个串行协议不是很有经验。我之前主要使用I2C。

0 投票
0 回答
33 浏览

interrupt - stm8l @svlreg 缺少函数 f_TIM1_SystemTickISR 链接器错误

我正在使用 atomthreads 在 stm8L151c6 中实现多任务任务。

我收到错误error clnk Debug\project.lkf:1 @svlreg missing for function f_TIM1_SystemTickISR

我已经将它添加到我的中断处理程序中。

我哪里出错了?

0 投票
1 回答
38 浏览

c - COSMIC C - 如何将汇编文件添加到 C 代码中

在 stm8L151c6 微控制器的 cosmic c 中使用 atomthreads 时出现此错误。

clnk - symbol _archFirstThreadRestore not defined (Debug\atomkernel.o)

我发现 _archFirstThreadRestore 是在名为atomports_asm_cosmic.slinker 的汇编文件中定义的,无法在汇编文件中找到这些例程。如何制作链接器以将汇编程序文件添加到使用这些函数的 c 代码中。

0 投票
0 回答
39 浏览

c - STM8L001J3 SDCC 和使用 STM 工具集刷新 s19 文件的问题

我刚刚开始将 STM8(一个 STM8L001J3,不幸的是开源工具链支持的最差)与 SDCC 一起使用。由于 ST Visual Programmer 只支持 s19,所以我需要选择这个作为输出格式。查看映射文件,一切似乎都很好,链接器将主函数放置在代码空间 0x8028 开头的稍微后面(就在中断向量后面)。

代码本身如下所示:

我什至设置--code-loc 0x8000了链接器的选项以正确放置它,当我向 VSCode(带有 EIDE 扩展)询问命令行时,它告诉我以下信息:

当我现在在 ST Visual Programmer 中打开文件时,它会显示:

代码视图也只显示 0x00: 在此处输入图像描述

如果我生成一些英特尔 HEX 文件并将其放入http://www.dlwrr.com/electronics/tools/hexview/hexview.html的在线查看器中,它看起来也不错。

在此处输入图像描述

由于我不会流利地说摩托罗拉 s19,也许有人可以给我一个提示。

如果有人可以批准,十六进制很好并将我链接到一个编程工具,在 Windows (10) 上支持这个变体,这也是一个可行的解决方案。

0 投票
0 回答
12 浏览

pragma - STM8 默认 EEPROM 值 COSMIC 编译器

我正在使用 COSMIC 'C' 编译器 Ver 4.5.3 为 STM8 CPU (STM8S003K3) 开发一个程序,我想在使用 ST-LINK/V2 设备进行大规模生产期间用默认值填充 MCU EEPROM。

在手册中,我读到我必须使用#pragma 指令,我开发了一个简单的代码:

我编译并链接了购买的代码,我注意到 EEPROM 部分仍然是空的。我报告了几行 .map 文件

你有类似的问题吗?你怎么修好它的 ?非常感谢您的帮助和合作问候

0 投票
0 回答
2 浏览

integer - stm8 是否有使用 cosmic 编译器的 24 位整数类型?

我在 stm8 单片机中有一个 32 位除法器。不用说,这非常慢。理论上,24 位操作会更快。stm8 是否有使用 cosmic 编译器的 24 位整数类型?如果没有,是否有一个用于 24 位操作的汇编库会更快?

0 投票
0 回答
13 浏览

microcontroller - 如何让 stm8s003f3 在 timer1 上做 38khz 频率?

我想做一些 rc5 发射器项目。

我已经有一个带有 stm8s003 的电路来发送数据和一个 ne555 来产生 38khz 的频率。将它们连接在一起并发送特定数据,我的 rc5 发射器工作正常,而且没有任何消息。

但我想删除 ne555 并且只使用 stm8s003 来做这两个工作。

我只需要一个代码就可以让 TIMER_1 发送 38khz 频率。

这是一个示例代码,但我不知道。

似乎这段代码可以使 LED 平滑地改变亮度