串口发送数据造成卡死
本帖最后由 junge1a520 于 2021-11-18 16:37 编辑单独测试发送没有问题,当放到串口查询任务里面,只要是串口发送数据就卡死。放置在别的任务主动发送没有问题。
手动单步执行,可以通过串口发送,但是后面程序又卡在图片的位置。 方便的话,分享你的工程到百度云看下。 eric2013 发表于 2021-11-18 17:15
方便的话,分享你的工程到百度云看下。
sprintf(temp_data,"%s,%s,%s,%s,%s,%s\r\n",
Init_Data_Equipment.Measure_Interval,
Init_Data_Equipment.appointment_time,
Init_Data_Equipment.measure_mode,
Init_Data_Equipment.Pub_Time,
yymmdd,
hhmmss
);
我是执行了这个函数,栈立马增大,很纳闷。这些数据总共才几十个字节。 junge1a520 发表于 2021-11-18 17:33
sprintf(temp_data,"%s,%s,%s,%s,%s,%s\r\n",
Init_Data_Equipment.Measure_Interval,
...
你这个是比较大的字符串吗 eric2013 发表于 2021-11-19 01:25
你这个是比较大的字符串吗
100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间?我把任务栈调到2K,可以了。 junge1a520 发表于 2021-11-19 09:02
100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间 ...
栈的局部变量要4字节对齐,一个字节要占用4字节,如果是连续的100个,基本100个就行。
估计其它地方有占用。
页:
[1]