junge1a520 发表于 2021-11-18 16:15:02

串口发送数据造成卡死

本帖最后由 junge1a520 于 2021-11-18 16:37 编辑

单独测试发送没有问题,当放到串口查询任务里面,只要是串口发送数据就卡死。放置在别的任务主动发送没有问题。

junge1a520 发表于 2021-11-18 16:18:55

手动单步执行,可以通过串口发送,但是后面程序又卡在图片的位置。

eric2013 发表于 2021-11-18 17:15:12

方便的话,分享你的工程到百度云看下。

junge1a520 发表于 2021-11-18 17:33:11

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
                );
我是执行了这个函数,栈立马增大,很纳闷。这些数据总共才几十个字节。

eric2013 发表于 2021-11-19 01:25:40

junge1a520 发表于 2021-11-18 17:33
sprintf(temp_data,"%s,%s,%s,%s,%s,%s\r\n",
                Init_Data_Equipment.Measure_Interval,
...

你这个是比较大的字符串吗

junge1a520 发表于 2021-11-19 09:02:26

eric2013 发表于 2021-11-19 01:25
你这个是比较大的字符串吗

100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间?我把任务栈调到2K,可以了。

eric2013 发表于 2021-11-19 10:57:30

junge1a520 发表于 2021-11-19 09:02
100个字节的全局变量,函数里面还有一个200字节的局部变量数组,系统调用的时候,一个字节需要多少栈空间 ...

栈的局部变量要4字节对齐,一个字节要占用4字节,如果是连续的100个,基本100个就行。

估计其它地方有占用。

页: [1]
查看完整版本: 串口发送数据造成卡死