跳转到主要内容

存储问题

DA14580

2年前

存储问题

发布的gert1860点 3回复
0的问题

你好,

我已经写了一个代码样本P00, P01, P02 ADC值。

此代码由AT+TMRSTART=0,0,1触发

代码如下:

else if (user_compare_cmd(“TMRSTART”、3、3))

Uint8_t timer_id = ahtoi((char*)argument_array[0]);
Uint8_t index = ahtoi((char*)argument_array[1]);
times_seconds = ahtoi ((char *) argument_array [2]);

如果(指数= = 0)
codeless_env。咯[timer_id] = app_easy_timer (ahtoi ((char *) argument_array [2]), throw_command0);
Else if(index == 1) Else if(index == 1)
codeless_env。咯[timer_id] = app_easy_timer (ahtoi ((char *) argument_array [2]), throw_command1);
其他的
user_reply (tempstr假);
如果(指数< 4)
user_reply (tempstr,真实);

/ /输入插脚
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)0, INPUT, PID_GPIO, false);
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)1, INPUT, PID_GPIO, false);
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)2, INPUT, PID_GPIO, false);

/ / ADC INIT

adc_init (GP_ADC_SE, 0, 0);

在回调代码中:
空白throw_command0 ()

codeless_env。suppress_response = true;
adc_enable_channel (0);
adc_get_sample ();
int length = (int)(sizeof(ADC_values_1) / sizeof(ADC_values_1[0]));
For (int I = 0;我<长度;我+ +){
adc_enable_channel (0);
adc_get_sample ();
ADC_values_1[我]= adc_get_sample ();
adc_enable_channel (1);
adc_get_sample ();
ADC_values_2[我]= adc_get_sample ();
adc_enable_channel (2);
adc_get_sample ();
ADC_values_3[我]= adc_get_sample ();

For (int I = 0;我<长度;我+ +){
arch_printf(“%,%,% \ r \ n”,ADC_values_1[我],ADC_values_2[我],ADC_values_3[我]);

codeless_env。咯[0]= app_easy_timer (times_seconds throw_command0);
codeless_env。suppress_response = false;

Timer在回调函数中重新启动自己。

它在一段时间内运行良好,然后程序崩溃。

数组是全局定义的:
int ADC_value_1 [30];

如果我调试它与IDE Keil和运行它可能存储将是满的或adc停止工作?
知道问题在哪里出现吗?

Arch_printf()引起的问题!

致以最亲切的问候
哥特

2年前

IM_Dialog

嗨gert186,

我建议使用调试器来找出代码崩溃的地方。如果您能找到导致问题的代码行,我们应该能够进一步提供帮助。

致以最亲切的问候

IM_Dialog

2年前

gert186 0点

我用的是调试器!但是问题是Uart2回调函数不再被到达:
静态void uart_callback(uint8_t res)
这个函数或多或少地删除缓冲区。

如果你在循环中调用arch_printf()。代码会自动消亡。我不知道为什么!

致以最亲切的问候
哥特

2年前

MHv_Dialog

嗨,哥特,

我想知道您向UART发送了多少字节。显然,您每10毫秒调用一次计时器函数。你正在接近57k6比特/秒的UART比特率吗?

如果你只发送一个字符作为实验,代码会运行吗?

/ MHv