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

怎么样注册公司流程和费用搜索引擎优化是什么意思

怎么样注册公司流程和费用,搜索引擎优化是什么意思,网站做不好一直不交付怎么办,企业网站建设公司注意哪些问题问题描述: 总线上有两个设备,主机:100ms周期发送数据。从机:以不同波特率发送数据,再把从机波特率调节至主机波特率一致无法通信。 环境:VSCODE IDF-v5.0 问题分析: 我们先看下ESP32技术参…

问题描述:

总线上有两个设备,主机:100ms周期发送数据。从机:以不同波特率发送数据,再把从机波特率调节至主机波特率一致无法通信。

环境:VSCODE + IDF-v5.0

问题分析:

我们先看下ESP32技术参考手册中TWAI中对错误状态计数器的描述。当TEC>255时,说明总线发生严重错误,此时ESP32的机制会关闭总线进入离线状态。这也是导致我们无法通信的原因。

问题解决方法:

在ESP32的技术参考手册上也描述了怎么恢复离线状态。

首先我们需要知道CAN(TWAI)的总线状态。这个我们可以通过IDF的API函数来获取中线的各种状态。

代码如下:

/*** @brief   Structure to store status information of TWAI driver*/
typedef struct {twai_state_t state;             /**< Current state of TWAI controller (Stopped/Running/Bus-Off/Recovery) */uint32_t msgs_to_tx;            /**< Number of messages queued for transmission or awaiting transmission completion */uint32_t msgs_to_rx;            /**< Number of messages in RX queue waiting to be read */uint32_t tx_error_counter;      /**< Current value of Transmit Error Counter */uint32_t rx_error_counter;      /**< Current value of Receive Error Counter */uint32_t tx_failed_count;       /**< Number of messages that failed transmissions */uint32_t rx_missed_count;       /**< Number of messages that were lost due to a full RX queue (or errata workaround if enabled) */uint32_t rx_overrun_count;      /**< Number of messages that were lost due to a RX FIFO overrun */uint32_t arb_lost_count;        /**< Number of instances arbitration was lost */uint32_t bus_error_count;       /**< Number of instances a bus error has occurred */
} twai_status_info_t;/*** @brief   Get current status information of the TWAI driver** @param[out]  status_info     Status information** @return*      - ESP_OK: Status information retrieved*      - ESP_ERR_INVALID_ARG: Arguments are invalid*      - ESP_ERR_INVALID_STATE: TWAI driver is not installed*/
esp_err_t twai_get_status_info(twai_status_info_t *status_info)

同时CAN(TWAI)总线的状态有以下几种状态。

/*** @brief   TWAI driver states*/
typedef enum {TWAI_STATE_STOPPED,             /**< Stopped state. The TWAI controller will not participate in any TWAI bus activities */TWAI_STATE_RUNNING,             /**< Running state. The TWAI controller can transmit and receive messages */TWAI_STATE_BUS_OFF,             /**< Bus-off state. The TWAI controller cannot participate in bus activities until it has recovered */TWAI_STATE_RECOVERING,          /**< Recovering state. The TWAI controller is undergoing bus recovery */
} twai_state_t;

当我们获取到现在的总线状态为OFF时,我们就可以知道我们的CAN(TWAI)中线已经离线,我们要开始进入恢复流程,我们直接调用IDF的API进入恢复流程,我们可以通过以下代码来实现。

/*** @brief   Start the bus recovery process** This function initiates the bus recovery process when the TWAI driver is in* the bus-off state. Once initiated, the TWAI driver will enter the recovering* state and wait for 128 occurrences of the bus-free signal on the TWAI bus* before returning to the stopped state. This function will reset the TX queue,* clearing any messages pending transmission.** @note    The BUS_RECOVERED alert can be enabled to alert the application when*          the bus recovery process completes.** @return*      - ESP_OK: Bus recovery started*      - ESP_ERR_INVALID_STATE: TWAI driver is not in the bus-off state, or is not installed*/
esp_err_t twai_initiate_recovery(void);twai_status_info_t twai_status_info;
twai_get_status_info(&twai_status_info);// 总线关闭
if(twai_status_info.state == TWAI_STATE_BUS_OFF)
{// 总线复位twai_initiate_recovery();
}

当我们执行完twai_initiate_recovery();函数之后CAN(TWAI)总线会清空所有错误计数,但是此时总线还不能直接收发数据,因为此时我们的总线状态为TWAI_STATE_STOPPED状态,我们此时需要切换到TWAI_STATE_RUNNING状态我们才能正常收发数据,这个状态的切换我们也是通过API函数来切换。代码如下:

twai_start();

问题总结:解决这个问题只需要在收发任务中加入以下代码就可以对总线状态进行监控。进入恢复流程。

// 读取总线状态
twai_status_info_t twai_status_info;twai_get_status_info(&twai_status_info);
// 总线关闭
if(twai_status_info.state == TWAI_STATE_BUS_OFF)
{twai_initiate_recovery();
}
// 总线停止
else if(twai_status_info.state == TWAI_STATE_STOPPED)
{twai_start();
}

如果帮到了你,请给我一个关注😍。

http://www.dinnco.com/news/71869.html

相关文章:

  • 怎么加快网站打开速度宜昌网站seo收费
  • 在百度上免费做网站页面seo技术培训机构
  • 企业网站公安备案武汉网站seo德升
  • 怎么做qq钓鱼网站吗北京搜索引擎推广公司
  • wordpress服装插件win7优化大师
  • 建设银行集团网站首页搜什么关键词能搜到好片
  • 做网站发票河南怎样做网站推广
  • 简约网站设计欣赏seo兼职工资一般多少
  • 帝国cms企业网站模板百度广告平台电话
  • 郑州设计网站的公司百度网页游戏大厅
  • 做外贸怎么登陆国外网站google adwords关键词工具
  • 关键词网络推广嘉兴优化公司
  • 网站上的定位怎么做品牌网站设计
  • 政府网站asp源码怎么快速优化网站排名
  • 香水网站模板推广平台排名前十名
  • 商业网站建设软件北京网站优化步骤
  • 织梦系统做的网站忘记登录密码网站如何添加友情链接
  • 潍坊 网站建设收录查询 站长工具
  • 陕西做网站电话营销型网站建设企业
  • 物流公司网站建设方案软文是什么
  • 武汉网站建设dw027完善的seo网站
  • o2o网站建设公司上海专业的网络推广
  • html布局模板株洲seo快速排名
  • 网站建设需要什么教材2021国内最好用免费建站系统
  • jsp源码做网站郑州搜索引擎优化公司
  • 网站定制需求可口可乐网络营销策划方案
  • 营销网站做推广太原百度推广开户
  • 怎样做网站优化排名北京网站制作
  • 公司网站开发合同 华律网茂名seo快速排名外包
  • 招聘网站分析如何做中南建设集团有限公司