问题标签 [mcu]
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.
c - c中的平均值,不超过值数据类型?
如上所述,如何在不将所有值添加到浮点数的情况下平均一组值,这旨在用于 8 位/16 位微,以减轻时间计算浮点数。我想出了一个方法,但我担心它比将所有内容添加到浮点数中并划分更麻烦。我将在下面附上代码。
平均值减少到 ADCsample 数组中的第一个元素
平均.c
平均.h
c++ - C++中MCU寄存器映射的位域联合
我一直在为这个平台上的现场可编程门阵列中实现的硬件外设开发软件驱动程序。我一直在使用 C++ 编程语言和 arm-none-eabi-gcc 编译器。
其中一个外设具有以下寄存器映射
对于寄存器 CONTROL_REG,我可以方便地同时使用各个掩码位以及所有掩码位。所以我决定在位域中使用联合
我已经测试过了,它可以工作。不过,我怀疑这种结构是否正确。谁能告诉我我选择的方法是否是我问题的正确解决方案?提前致谢。
c++ - C++ 虚拟析构函数 ROM 使用
我试图理解为什么需要这么多代码来创建一个带有虚拟析构函数的基类。我正准备在 MCU 上编写一个具有小 ROM 空间的项目,所以这让我很困扰。
创建虚拟析构函数需要 2k 的 .text 和 1k 的 .data 内存……为什么?是否可以避免虚拟析构函数并仍然编写安全的 OOP 程序?
c - 编译器删除的配置变量
我正在尝试定义一组全局变量来配置我的设备,大约 10 个在专用的 .c 文件中,将在编译时定期更改(根据设备要求),我希望这些在这个单独的文件,因此它们都可以轻松更改。然后在我的程序中的各种文件中调用这些变量。并且从不改变只读取。问题是我的编译器(用于 PIC MCU 的 XC8)没有定义变量,因为它只能看到文件中变量的一次使用,即使在整个程序中使用 extern 调用它也是如此。
配置文件
配置文件
prog_a.h
prog_a.c
主程序
结果,等效的 var_A 始终为 0,因为编译器已经取消了 config.c,因为它看不到再次调用的变量。
我假设答案对那些更精通的人来说非常明显,但我在网上找不到任何东西。我在使用 extern 和 globals 之前没有遇到任何问题,当它们在定义的文件中使用时。但我可能只是从根本上错误地使用它,所以请随意责备我。
提前致谢。
ps 如果不是很明显,这是一个示例代码来说明我的问题。
c - STM32H743ZI Nucleo 似乎无法通过 FDCAN 2 传输?
我目前正在尝试通过 Nucleo 上的两个 FDCAN 发射器发送消息。但我只能通过 FDCAN1(经典主机)而不是通过 FDCAN 2(经典从机)进行传输。
配置设置是一样的,只有 FDCAN1 开始发送,而 FDCAN 2 在很短的时间后出现缓冲区溢出,从不发送任何内容。我正在使用 CANoe 进行监控,我只能看到通过 FDCAN1 发送的消息。
我也知道这不是硬件问题,因为我更换了电缆和电路板,但问题仍然存在。我的电缆也正确端接...
我有什么明显的遗漏吗?
这是我的代码,我使用 CubeMx 进行第一次初始化。
fdcan.c 文件:`
和 main.c 的相关部分:
assembly - 从百度下载文件
我正在用STC MCU编写PLC板,并且总是无法将程序下载到MCU,STC ISP编程软件的las版本(v6.87)存储在BAIDU云中,并且注册我需要一部中文手机,有人知道或有百度帐户可以下载并通过邮件发送给我或上传到googledrive吗?或者知道直接下载的方法?这是来自 STC 网站的链接:http: //www.stcmicro.com/rjxz.html
arduino - 如何使用 2 个 PCB 同时读取多个 OBD-2 CAN 传感器数据
我目前在定制的从 PCB 上使用 STN2120,该 PCB 将插入车辆的 OBD-2 端口。STN 将解释 CAN 协议,并通过 UART 将引擎传感器信息传递到主 PCB。然后,主板上的 ATMEGA2560 MCU 将监控它从 STN2120 接收到的 OBD-2 发动机传感器值,并且主板将根据我正在监控的 CAN 传感器数据满足某些条件来激活数字输出电路。我需要主板上的 MCU 能够以与 CAN 总线产生数据相同的速度读取数据(即:我相信最高 500 kbps)。
设计我的电路板的人意识到,使用主 PCB 的 ATMEGA MCU 向 STN 请求数据,然后接收该数据,可能会导致每个传感器数据的刷新率超过 1 秒。我想在主板上阅读。虽然我不需要来自 CAN 总线的绝对瞬时数据,但出于我的目的,它需要以每秒几次的速度刷新。
根据我所描述的,是否有更好的方法可以在主板上收集这些数据,从而在查看 CAN BUS 上的 15 个传感器数据时提高刷新率?是否可以在 ATMEGA 上加载一些库,使其完全符合 STN2120 的功能?抱歉这里的无知;我只是一个有概念的汽车人,对微控制器的了解很少。
embedded - STM32 引导加载程序
我正在学习嵌入式系统并对一个小项目有一个想法,我想使用基于 Cortex M0+ 的 MCU STM32G081KBT6。我看到了很多关于这种 MCU 类型的教程,但它们都是基于开发板的,并且使用它们使用 USB 电缆上传代码非常简单。我想为此制作我的定制PCB。所以我的问题是我必须做什么才能将我的代码上传到这个微控制器?
从数据表中,我认为我必须使用 SWDIO (PA13) 和 SWCLK(PA14) 端口进行引导,但如果有人可以帮助我,我还必须使用一些电阻器,我可以用它使它成为 USB 到电汇,或者我必须使用一些外部设备才能实现?或者有一些更简单更好的解决方案可以将代码从我的笔记本电脑上传到微控制器?
感谢您的回复。
timer - 如何使用周期性中断定时器切换 LED?
我是 ARM 编程新手。我正在使用具有 72MHz 时钟的 K20 MK20DX256 MCU 使用周期性中断定时器 0 每 1 秒切换一次 LED。代码编译正常,但 LED 不切换。我发现将定时器与 LED 一起配置不起作用虽然单独的 LED 确实有效,但我在 keil Uvision 中编写了以下代码
谁能帮我找出这段代码有什么问题?我发现在调试过程中没有一个寄存器改变它们的值 在 此处输入图像描述