当前位置: 首页 > news >正文

网页出现网站维护国外免费可以做网站的服务器

网页出现网站维护,国外免费可以做网站的服务器,游戏推广工作好做吗,wordpress注册添加验证码1.开发背景 基于以上的章节#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用#xff0c;已经满足了日常使用场景。其中#xff0c;队列的使用规定了队伍成员的大小#xff0c;然而现实使用场景下#xff0c;很多数据不都是定长大小了#xff0c;例如不定长的通讯…1.开发背景 基于以上的章节了解了 FreeRTOS 多线程间的信号量、队列的使用已经满足了日常使用场景。其中队列的使用规定了队伍成员的大小然而现实使用场景下很多数据不都是定长大小了例如不定长的通讯协议亦或者是缓存日志信息如果在这种场景下使用队列传递信息显然不合适会导致队伍中空间没有利用起来。因此FreeRTOS 引入流缓冲区实际上就是环形缓存。 注意流缓冲区相对于队列没有设置临界区保护只有一对一传输才是安全的一对多或者多对多需要自行进入临界区保护。 2.开发需求 设计实验 1创建 2 个线程控制线程和接收线程 2控制线程定时发送数据到流缓存区 3接收线程接收流缓存区的数据 3.开发环境 window10 MDK STM32F429 FreeRTOS10.3.1 4.实现步骤 4.1 实现编码 创建流缓存区还需要注意的是触发的字节数 xTriggerLevelBytes接收数据的时候需要达到触发字节数才会触发接收一般设置为 1 即可。 #include appTest.h#include stdio.h #include string.h #include stdlib.h#include mspDwt.h #include mspGpio.h #include mspExti.h#include FreeRTOS.h #include task.h #include queue.h #include stream_buffer.h#include appLog.htypedef struct {/* 流缓存区 */unsigned char rxBuff[1024];StreamBufferHandle_t buffer;/* 创建任务 */TaskHandle_t taskCtrl;TaskHandle_t taskRx; }Ctrl_t;/* 文件指针 */ static Ctrl_t s_ctrl {0}; static Ctrl_t *p s_ctrl; static void TaskCtrl(void *pvParameters); static void TaskRx(void *pvParameters);static void TaskCtrl(void *pvParameters) {for ( ; ; ){static unsigned char count 0;vTaskDelay(10);if (count 10){xStreamBufferSend(p-buffer, count, sizeof(count), portMAX_DELAY);Log_Debug(%s Tx Data %d\r\n, __func__, count);count;}} }/* 接收线程 */ static void TaskRx(void *pvParameters) {for ( ; ; ){size_t rxSize xStreamBufferReceive(p-buffer, p-rxBuff, 100, portMAX_DELAY);Log_Debug(%s RxData , __func__);for (int i 0; i rxSize; i){Log(eLog_Debug, %.2X , p-rxBuff[i]);}Log(eLog_Debug, \r\n);} }/* 测试初始化 */ void aTest_Init(void) {/* 创建流缓冲区 */size_t xBufferSizeBytes 100;size_t xTriggerLevelBytes 1; // 接收的字节大于触发字节可以提前唤醒p-buffer xStreamBufferCreate(xBufferSizeBytes, xTriggerLevelBytes);/* 创建动态任务 */xTaskCreate(TaskCtrl, TaskCtrl, 500, NULL, 4, p-taskCtrl);xTaskCreate(TaskRx, TaskRx, 500, NULL, 4, p-taskRx); }/* Key2 PC13 Key0 PH3 Key1 PH2 */ void Exti13_TriggerInterrupt(void) {mspExti_Close(13);if (mspGpio_GetInput(PC13) 0){} }4.2 结果显示 4.3 其他常用接口 xStreamBufferIsEmpty         // 判断缓存是否空 xStreamBufferIsFull // 判断缓存是否满 xStreamBufferReset // 缓存复位清空 xStreamBufferBytesAvailable // 缓存现有已存储字节 xStreamBufferSpacesAvailable // 混存现有未储存字节
http://www.pierceye.com/news/80748/

相关文章:

  • 公司没有备案了网站北京建设工程信息网上报名基础信息
  • 论坛网站建设多少钱怎样看一个网站做的网络广告
  • 那些网站可以接私活做网站开发技术与应用课程设计
  • 用asp.net做网站怎么打电话给网络服务商
  • 设计师都上什么网站2345浏览器免费版
  • 网站容量网站中英文转换怎么做
  • 潍坊高新建设局网站聊城网站建设项目
  • 逻辑网络设计的目标是什么?seo排名赚app
  • 定兴做网站建筑设计案例网站推荐
  • 博物馆网站页面设计说明从美洲开始做皇帝免费阅读网站
  • 长宁区科技网站建设好的网站建设方案
  • 汕尾网站网站建设私人网页制作
  • 网站提升排名台州城乡建设规划网站
  • 正常网站 月均ip pv中国纪检监察报社级别
  • WordPress腾讯云短信插件网站优化过度被k
  • 电子商务类网站嘉兴品牌网站建设
  • asp sqlite网站空间建设网站的重要意义
  • 如何查询网站打开速度wordpress微信文章
  • 学校网站开发必要性与意义铁路局招聘正式工4000人
  • 泉州网站建设策划wordpress 自建cdn
  • 泊头西环网站建设南通小企业网站建设
  • 免费软件看电影电视剧亚马逊关键词快速优化
  • 网上学编程的有哪些比较好的网站盐城建设厅网站
  • 程序员免费自学网站如何注销公司
  • 靖江建设行业协会网站创建微信公众号要钱吗
  • 做专属淘客网站开源镜像网站开发
  • 网站图片优化大小网站备案幕布
  • 中国建设银行网站首页e路护航济南企业网站搭建
  • 怎样建网站域名培训班设计
  • 陵水网站建设公司建设一个旅游网站毕业设计