我有一个Arduino Duemilanove USB.我只有一个LED连接到它上面的一个端口.我想用C#打开这个LED.有一个简单的例子说明如何做到这一点?只是最基本的开/关代码是我正在寻找的.
另外,我知道有一些库是为与Arduino进行.NET通信而编写的.我发现的所有人都使用Firmata,我无法使用我的Arduino完全使用Firmata库,所以我正在寻找一个只使用原始串行命令的简单示例.
我正在进行这个机器人手臂项目以及一些我们还没有选择微控制器的工程师,但目前正在测试PIC.我想知道是否有支持C++的Micros?
背景:我是一名(Java)软件开发人员,是嵌入式系统的初学者,目前使用Mikro Elektronika IDE和C语言进行编程.
我有一个标准的c函数与以下原型
extern void lcd_puts(const char *s);
Run Code Online (Sandbox Code Playgroud)
在我的其他功能中我有这样的东西
send_to_lcd() {
uint8_t count = 10
lcd_puts(count);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将count转换为字符串指针,以便能够将其发送到lcd_puts,这应该在lcd屏幕上打印出计数
谢谢
在哪个部分中,常量volatile变量存储在c.在微控制器中,我们应该将这种变量放在RAM中.对?
我正在尝试实现一个 8 位 fletcher 校验和函数。
我的数据总是 17 字节长。
我从Remake of Fletcher checksum from 32bit to 8 的代码开始
这是我最终拥有的:
// 8-bit Fletcher checksum
// data is always 17 byte long
uint8_t fletcher(uint8_t *data) {
uint8_t sum1 = 0x0f, sum2 = 0x0f, len = 17;
while(len) {
sum1 += *data++;
sum2 += sum1;
sum1 = (sum1 & 0x0f) + (sum1 >> 4);
sum2 = (sum2 & 0x0f) + (sum2 >> 4);
len--;
}
sum1 = (sum1 & 0x0f) + (sum1 …Run Code Online (Sandbox Code Playgroud) 执行速度n/=10和n=n/10执行速度之间有什么区别吗?
就像n--和--n在他们的执行速度明智也有不同...
我需要使用终端的avrdude将编译好的Arduino草图(.hex文件)上传到我的Arduino Pro Mini 5V.我正在使用FTDI 5V对Pro Mini板进行编程.当我将电路板插入我的机器并使用以下参数运行avrdude命令时,它表示它无法在该端口上找到该设备(参见下图).有人能告诉我如何获取端口信息("-P")我将电路板插入计算机的位置?
avrdude上传命令显示异常:

我正在研究一个微控制器,我想在结果值上实现一个简单的平均滤波器来滤除噪声(或者老实说,不要让值在LCD上跳舞!).
ADC结果通过DMA插入存储器.我(为了便于调试)一个大小为8的数组.为了让生活更轻松,我已经编写了一些定义,使我的代码可以用最少的工作量编辑:
#define FP_ID_POT_0 0 //identifier for POT_0
#define FP_ID_POT_1 1 //identifier for POT_1
#define FP_ANALOGS_BUFFER_SIZE 8 //buffer size for filtering ADC vals
#define FP_ANALOGS_COUNT 2 // we have now 2 analog axis
#define FP_FILTER_ELEMENT_COUNT FP_ANALOGS_BUFFER_SIZE / FP_ANALOGS_COUNT
//means that the DMA buffer will have 4 results for each ADC
Run Code Online (Sandbox Code Playgroud)
因此,缓冲区的大小为8,其类型为uint32_t.我正在阅读2个ADC频道.在缓冲区中,我将为通道A提供 4个结果,为通道B提供 4个结果(以循环方式).这个数组的简单转储就像:
INDEX 0 1 2 3 4 5 6 7
CHNL A B A B A B A B
VALUE 4017 62 …Run Code Online (Sandbox Code Playgroud) 我需要保存一个结构:
struct {
uint16_t value;
uint16_t flag;
} status;
Run Code Online (Sandbox Code Playgroud)
使用外部 I2C EEPROM
HAL_StatusTypeDef HAL_I2C_Mem_Write (I2C_HandleTypeDef * hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t * pData, uint16_t Size, uint32_t Timeout)
Run Code Online (Sandbox Code Playgroud)
功能
你能建议我一个正确的方法来做到这一点吗?
我正在尝试将数字传感器模块连接到Arm Cortex M4F芯片.
收到的数据是模块的3个字节.但是,我在MCU中唯一可用的功能是uint32_t读取功能.我不知道为什么没有uint8_t函数,但也许这只是位移的问题?我在这里学习c ++.
所以我把价值看作:
uint32_t value = mcu_read(pin);
Run Code Online (Sandbox Code Playgroud)
value现在包含一个uint32_t4字节.我需要前三个.是否有可能以任何方式将其"提取"出来?这有意义吗?showstopper是mcu_read函数,最少读取4个字节.如果有uint8_t读取功能,我可以调用它三次以获取我需要的数据.