问题标签 [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 投票
1 回答
411 浏览

c - 我需要知道为什么我的中断在这里不起作用

我正在使用 stm8l - 发现并且我创建了一个代码,用于使用计时器(TIM1)每 1 秒切换一次 LED,但这不能正常工作。我在我的配置中遗漏了一些东西

我可以第一次进入中断功能,但之后它没有进入中断功能。有人请调查并帮助我

中断只进入一次,之后就不再进入。所以变量“count”保持在值 1

0 投票
0 回答
966 浏览

c - 链接器的映射文件中的这些部分是什么?

我的 COSMIC-C 链接器为我的 STM8S 微控制器项目生成了一个映射文件,尽管有一些熟悉的部分,但有点缺乏表达力。

这是地图文件输出和一些模块:

我知道.text.data。我可以假设bsctubsctdatabss(尽管已经有 .data 和 .bss );还有关于.eeprom.const可能代表它们明显的内存部分。但 :

  1. .info、.bit、.share、.init 是什么?
  2. 我对 .bsct 和 .ubsct 的假设是否正确?如果不是,这些部分是什么,如果是,为什么我们同时拥有 .bsct/.ubsct 和 .data/.bss ?
  3. 为什么我们有两个.const?(它们是连续的)
  4. 尽管已定义,但问题 1 中提到的所有项目都没有出现在我的代码的任何模块中。它们只是标准吗?
  5. 这些部分是否遵循命名约定,或者它们只是 COSMIC 之外的东西?我的意思是它们是否是标准的。

有很多thanx。

更新

COSMIC 链接器文档有很多关于如何制作链接器脚本的描述,但没有预定义的表格。似乎脚本是由 STVD(IDE)编辑的。尽管如此,有一个示例(与我的问题不太相关)可能会有所帮助:

在此处输入图像描述

0 投票
0 回答
490 浏览

embedded - I2C 无法启动

我正在使用 stm8s 控制器和 SDCC 编译器。我正在将基于 SD130S7 I 2 C 的 RTC 与控制器连接。我在沟通过程中遇到问题。我觉得问题是我2C本身没有启动。

我正在使用 STM8S103 的开发板。

我检查了逻辑分析仪,发现 SDA 引脚上只有一个脉冲。

我很困惑为什么 SDA 有脉搏而 SCL 没有。(因为 SCL 是时钟,时钟应该首先出现)。

0 投票
0 回答
59 浏览

assembly - st8s013f2控制器中的stm8地址范围错误读取访问

我在 ST Visual Studio(汇编语言)的模拟器模式下使用 stm8s103f2p 控制器,在编译我的一个示例文件期间,我收到错误“读取访问超出 stm8 地址范围”。

映射文件:字节;以下地址是 0-ff 'ram0' 处的 8 位长段字节

源文件:stm8/

。主要的: ; 示例代码 CPL A

0 投票
0 回答
28 浏览

assembly - 无法在 STM8S103F2 控制器中定义 CPU 寄存器(累加器 (A)、索引寄存器(XH 和 XL)的地址空间)

在汇编代码中,对于 STM8S103F2 控制器,我们可以通过以下语法映射寄存器:

示例:PA_ODR equ $5000 或 5000 'cpu' 处的段字节 .PA_ODR DS.B 1

但是当它用于 CPU 寄存器时,这两种语法都不起作用。相当于 $7F00

或 7F00 'cpu' 处的段字节 .A DS.B 1

谁能说出为什么 CPU 寄存器映射不适用于 STM8S103F2 控制器的原因。

0 投票
0 回答
27 浏览

assembly - 在变址寄存器 XL(汇编语言)中直接在 STM8S103F2 控制器中加载值

我在汇编语言中使用 STM8S103F2 控制器。我想在一条指令中直接在“XL”索引寄存器中加载值,我不想影响“XH”寄存器。(索引“x”寄存器是 XH 和 XL 的组合)。在“X”索引寄存器中加载值的其他方法:

  1. LDW x,#$50

  2. LD A,#$10 LD XL,A

0 投票
0 回答
102 浏览

c - STM 8 寄存器地址

我的问题与 STM8 微控制器如何解决问题有关。也许我错过了一些东西,我写了一个存在问题的小程序。奇怪的是,它在我的计算机上与 stm8 MCU 不同。

我的计算机上此函数的输出与预期的地址匹配。

输出:

函数外地址:0x1001

函数内部地址:0x1001

STM8 单片机上的输出:

函数外地址:0x0110

函数内部地址:0x0110

所以我的问题是它为什么要这样做,它发生在哪里,如果我写入 START_ADDRESS 寄存器,它是在 0x1001 还是 0x0110 写入?可能只是两个系统上的 printf 略有不同。

0 投票
2 回答
295 浏览

filter - 标准外设库中的 STM8A CAN 过滤

我正在使用 STM8AF5286UDY 并尝试设置 CAN 接口。对于编程,我使用标准外设库。目前,我的 CAN 接口工作正常。唯一不起作用的是过滤。

我使用扩展 ID,并希望获取从 0x18FEC100 到 0x18FEC999 的所有 ID。我的代码如下所示:

我将不胜感激任何帮助!谢谢!

编辑:在我的初始代码中,我忘记在寻址时包含 IDE 和 RTR。此外,在库中,每个地址和掩码都是一个 8 位值。因此,我已将代码更改为以下内容:

此过滤器适用于前 16 位,因此在使用 0x18FEC101 时,它会过滤 0x18FE。不知何故,它不适用于其他 16 位。

在库中,以下代码用于将地址和掩码写入 32 位滤波器组中:

有什么想法,我的错误可能是什么?谢谢!

0 投票
1 回答
241 浏览

assembly - 如何验证STM8S控制器中代码的内存校验和

我正在使用“STM8103F3”控制器。我想在我的代码中执行 ROM 测试,但我找不到可以验证我的“内存校验和”的寄存器。内存校验和我可以添加“ROM”字节,但我面临如何验证的问题。任何人都可以在这个问题上帮助我。

0 投票
1 回答
67 浏览

c - 如何在“输入模式”下将控制器“STM8S103F3”的引脚“PD6 和 PD5”配置为低状态(电压电平 0)

我正在使用“STM8S103F3”控制器。当我在启动时(无外部连接)读取引脚“PD6 和 PD5”上的电压电平时,使用“IDR”寄存器,它显示电压电平为 1(5v)。我想知道,如何在此引脚上将电压电平设置为“0”。我已经为这个端口引脚尝试了这个控制器的“上拉寄存器”,但它不起作用。