zoukankan      html  css  js  c++  java
  • STM32+FreeRtos+Lwip移植笔记Ⅲ

    罪过罪过,太久没发博客,最近杂事太多,脑子也乱哄哄的,加上过年放松了好长时间,就不更了。

    每天就算10分钟, 也要坚持做一下近期的目标,养成习惯是成为专家的方法。

    上次说用收完一帧数据作为条件来触发信号量(事件)从而同步下一步的执行。我在程序里是如何判断收完了一阵数据?我自己建了几个全局变量——例如num_ToReadPc(即将从Pc读取的数据的长度),其实很类似Windows的numToRead这个Serial类的属性。只要收到的counts达到这个指标就触发事件,进行校验等等下一步操作。

    使用OS的好处之一:我认为,在需要等待串口信息回复时,如果等待超时,将退出不再等待继续执行;若得到触发,则直接通过并继续执行。光这一点,不用OS就有点麻烦——你需要自己建立一套超时重发的机制,in addition,c只能在函数的最开始定义变量,(还是说MDK编译器特有的?) 这样使得代码十分零乱,需要大量注释,逻辑也十分混乱......

    USART能用DMA更好,每次一个字节来,都要进中断,这上下文切换将会浪费时间,不如一次性收完在处理一下。

  • 相关阅读:
    1.2c#变量和运算符及注释
    1.1c#初识
    约数个数定理
    莫比乌斯反演
    欧几里得/拓展欧几里得
    中国剩余定理【数论】
    欧拉定理/欧拉函数【数论】
    费马小定理【数论】
    同余定理【数论】
    Java class 和public class 区别
  • 原文地址:https://www.cnblogs.com/YipCharlesLee/p/4373530.html
Copyright © 2011-2022 走看看