考虑到需要与上位机网络通讯的多任务系统。可以将网络通讯任务作为主任务。其余功能,简单的可以就在网络通讯任务里面直接处理。其他的可以明显区分不同功能的任务,就可以阻塞等待网络主任务发送的信号。当发出信号后,网络任务等待子任务的返回值。(这个返回值可以是邮箱,也可以是信号量),然后处理。这个等待子任务的过程,可以设置一个时间,时间过了,就取消了。
在利用串口接收数据的时候,可能无法知道结束符是什么,并不是每一个设备都会以回车(0x0d,0xoa)为结束符,这个时候,我们可以在串口中设置定时器,当接收到起始字符时,打开计时器,设定一个时间,例如10MS,时间到之后,产生中断,去读取串口的数据。(可以在时间中断里面读,也可以利用时间中断发射信号,在别的地方读取)。
往一个结构体的某个字段连续填充数据时,将这个字段填充完之后,多余的数据会填充这个结构体剩下的字段。(**这在保存或者传递结构体信息时十分有用**),这也证明,结构体字段在内存中,是按地址顺序依次存放的。
例如,往flash里面存放一个结构体,只需要,往某个flash地址里面写入这个结构体,长度为结构体长度,读取的时候,直接从这个flash地址里面读取这个长度的数据到结构体里面即可。
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交