c - 添加功能后的奇怪问题
问题描述
我有奇怪的问题。当我编译第一个函数时,微控制器发送带有错误的信号(som 八位字节是重复的,有些根本没有发送等)。但是当我完成第二个功能时,微控制器发送清除信号。这些错误的原因可能是什么?如果您需要更多信息,我会尽力回答:3
第一个功能:
uint8_t DataOut[DATA_OUT_BUF_SIZE];
uint8_t DataOutPosition = 0;
void add_data(uint8_t Value)
{
DataOut[DataOutPosition] = Value;
DataOutPosition++;
}
void send_data()
{
uint8_t Checksum = 0x52;
for (uint8_t i = 0; i < DataOutPosition; ++i)
{
Checksum ^= DataOut[i];
}
add_data((checksum_compression(Checksum) | (ProcessDataStatus << 6) | (EventFlag << 7)));
UART_CONTROL &= ~(1 << RXEN0);
EN_OUT;
for (uint8_t i = 0; i < DataOutPosition; ++i)
{
uart_put(DataOut[i]);
}
default_variables();
}
第二个功能:
uint8_t DataOut[DATA_OUT_BUF_SIZE];
uint8_t DataOutPosition = 0;
void send_data()
{
uint8_t Checksum = 0x52;
for (uint8_t i = 0; i < DataOutPosition; ++i)
{
Checksum ^= DataOut[i];
}
DataOut[DataOutPosition] = checksum_compression(Checksum) | (ProcessDataStatus << 6) | (EventFlag << 7);
DataOutPosition++;
UART_CONTROL &= ~(1 << RXEN0);
EN_OUT;
for (uint8_t i = 0; i < DataOutPosition; ++i)
{
uart_put(DataOut[i]);
}
default_variables();
}
描述:
- 1 - 第一个函数生成的信号。
- 2 - 第二个函数生成的信号。
- B - 接收到的信号。(一条通信总线。当微控制器发送信号时,它同时接收它。)
- Y - 微控制器发送的信号。
- R - 信号方向:0-IN 1-OUT
解决方案
推荐阅读
- php - Laravel eloquent 无法确定表
- database - Corda - 分类帐、保险库和存储服务之间的区别
- javascript - three.js 中的工具提示
- r - 在 for 循环中检查条件 ifelse 语句
- asp.net-mvc-5 - 努力解决 ASP.NET MVC5 路由问题
- xcode - 为什么即使构建阶段不包括资源,我也会收到复制捆绑资源警告?
- sql - Power bi 报告
- speech-recognition - 认知服务 - 自定义语音 C++
- sql - 从按两列分组的两个表中选择不匹配的行
- python - Numpy - 函数不应该更新全局变量