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

怎么兼职做网站wordpress 百度统计插件

怎么兼职做网站,wordpress 百度统计插件,校园网站建设方案,有的网页打不开是怎么回事系列文章目录 文章目录 系列文章目录前言一、端口处理二、在Encoder中引入新的类型1.增加485类型2.增加串口的初始化操作3.数据处理 总结 前言 尝试在ODrive中添加485型的编码器的支持 一、端口处理 计划使用PA2及PA3作为485通信的端口。这样首先要把外部温度传感器的I/O口给…系列文章目录 文章目录 系列文章目录前言一、端口处理二、在Encoder中引入新的类型1.增加485类型2.增加串口的初始化操作3.数据处理 总结 前言 尝试在ODrive中添加485型的编码器的支持 一、端口处理 计划使用PA2及PA3作为485通信的端口。这样首先要把外部温度传感器的I/O口给改掉。 找到外部温度传感器配置初始化的地方改掉改成GPIO5也就是PC4。 class OffboardThermistorCurrentLimiter : public ThermistorCurrentLimiter, public ODriveIntf::OffboardThermistorCurrentLimiterIntf { public:static const size_t num_coeffs_ 4;struct Config_t {float thermistor_poly_coeffs[num_coeffs_];//0716 Change GPIO PIN TO 5 PC4 #if HW_VERSION_MAJOR 3//uint16_t gpio_pin 4;uint16_t gpio_pin 5; #elif HW_VERSION_MAJOR 4uint16_t gpio_pin 2; #endif串口2 默认打开配置 case ODriveIntf::GPIO_MODE_UART_B: {GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Pull (i 0) ? GPIO_PULLDOWN : GPIO_PULLUP; // this is probably swapped but imitates old behaviorGPIO_InitStruct.Speed GPIO_SPEED_FREQ_VERY_HIGH;//if (!odrv.config_.enable_uart_b) {odrv.misconfigured_ true;// }此外还需要进行I/O的配置485使用串口的配置。如果想保持原风格的话需要添加对应枚举类型在原有的初始化硬件体系下进行。也可以自己定义一个I/O及外设初始化的函数在所有外设初始化完成以后调用。 二、在Encoder中引入新的类型 1.增加485类型 Encoder的类型是工程通过Odrive-interface.yaml生成的。包括其他的一些枚举类型所以从工程里直接去链接类型定义是找不到的。 ODrive.Encoder.Mode:values:INCREMENTAL:HALL:SINCOS:SPI_ABS_CUI:value: 0x100doc: Compatible with CUI AMT23xxSPI_ABS_AMS:value: 0x101doc: Compatible with AMS AS5047P, AS5048A/AS5048B (no daisy chain support)SPI_ABS_AEAT:value: 0x102doc: Supports AEAT-8800SPI_ABS_RLS:value: 0x103doc: Supports RLS Orbis EncodersSPI_ABS_MA732:value: 0x104doc: MagAlpha MA732 magnetic encoderU485_SRMA34:value: 0x400doc: SRMA34-M16S17Bit-SY-C-5V encoder这里增加一个U485_SRMA34的类型注意开头不要数字开头编译会有错误。 class Encoder : public ODriveIntf::EncoderIntf { public:static constexpr uint32_t MODE_FLAG_ABS 0x100;// 0717static constexpr uint32_t MODE_FLAG_SRMA 1024;static constexpr std::arrayfloat, 6 hall_edge_defaults {0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f};struct Config_t {//0717 Mode mode MODE_U485_SRMA34; //Mode mode MODE_INCREMENTAL;在Encoder类型中把对应的编码器类型给修改一下。 2.增加串口的初始化操作 这部分可以从系统串口初始化那边扒下来直接启用串口2。 但是0.5.6版本不支持双串口同时使用所以不能直接在odrive_main.h中启用uart_b。 所以还是再重新定义一个新的变量和新的处理任务。 这样的话永远不要再用原来的使能来启用uart_b了。 UART_HandleTypeDef* uart_a huart4; UART_HandleTypeDef* uart_b huart2; // TODO: this could be supported in ODrive v3.6 (or similar) using STM32s USART2 UART_HandleTypeDef* uart_c nullptr; UART_HandleTypeDef* uart_485_a huart2; // TODO: this could be supported in ODrive v3.6 (or similar) using STM32s USART2struct BoardConfig_t {ODriveIntf::GpioMode gpio_modes[GPIO_COUNT] {DEFAULT_GPIO_MODES};bool enable_uart_a true;bool enable_uart_b false;bool enable_uart_c false;bool enable_uart_485_a true;uint32_t uart_485_a_baudrate 115200;uint32_t uart_a_baudrate 115200;uint32_t uart_b_baudrate 115200;uint32_t uart_c_baudrate 115200;做戏也做全套新增一个uart_485_a的变量也指向huart2。这样后面不再引用uart_b的变量了。 在 boardInit里面增加初始化操作 //0717if (odrv.config_.enable_uart_485_a) {uart_485_a-Init.BaudRate odrv.config_.uart_485_a_baudrate;MX_USART2_UART_Init();} 当然这样只是初始化完成了外设。还需要把数据处理和数据关联加上。 波特率根据自己用的编码器外设来配置哦。 3.数据处理 在对应的头文件中添加这些接口的说明。 在main函数的inti_communication函数中调用此函数。 void init_communication(void) {//printf(hi!\r\n);// Dual UART operation not supported yetif (odrv.config_.enable_uart_a odrv.config_.enable_uart_b) {odrv.misconfigured_ true;}if (odrv.config_.enable_uart_a uart_a) {start_uart_server(uart_a);} else if (odrv.config_.enable_uart_b uart_b) {start_uart_server(uart_b);}// 0903 start 485 data handleif (odrv.config_.enable_uart_485_a uart_485_a) {start_u485_server(uart_485_a);}之后我们再完善 这个处理数据的任务。先进入到编码器定时采集的接口sample_now添加上我们的485编码器类别。 获取数据的方式还是用DMA的方式在回调中处理数据到相应的变量。 试了几种方法都不太行不知道是不是HAL库内部配置的太多了。这样倒是也省了一些额外的任务开支。 case MODE_U485_SRMA34:{// Send 485 order to Encoder// Send 485 order to Encoder 0912get_gpio(6).write(true);HAL_UART_AbortReceive(huart2);HAL_UART_Receive_DMA(huart2, u485_rx_buffer, 6);ucTemp 0x02;HAL_UART_Transmit(huart2, ucTemp, 1, 10);get_gpio(6).write(false);}break;再来回想一下SPI类型的编码器的处理在其回调中得到一个位置的绝对值并传递给pos_abs_参数。 数据的处理可以放到Task任务中去结合串口中断来实现。 所以直接在Update中来继续剩下的部分。 case MODE_U485_SRMA34:{abs_485_pos_updated_ false;delta_enc pos_abs_latched - count_in_cpr_; //LATCHdelta_enc mod(delta_enc, config_.cpr);if (delta_enc config_.cpr/2) {delta_enc - config_.cpr;}} break;关于这套计算的逻辑需要参考SPI 编码器的参数进行参考。 临时先弄这些。目前只是获取到了编码器的数值这一套到底能不能运行起来待测试。 总结 提示这里对文章进行总结
http://www.dnsts.com.cn/news/82293.html

相关文章:

  • 外贸企业论坛网站建设义乌公司做网站
  • 网站地图html农林牧渔行业网站建设
  • 做网站可以不用框架吗室内设计资料网站
  • 建设银行河北分行招聘网站wordpress 去掉头部栏目
  • php网站开发实例视频钱网站制作
  • 大港做网站天元建设集团有限公司申请破产了吗
  • iis网站视频无法播放国家职业资格证书网站
  • 做电影售票网站的难点做网站 天津
  • 企业建设网站应如何申请wordpress加一个字段
  • 优化推广网站淄博合肥小程序搭建
  • 合肥做网站的公微信引流的十个方法
  • 提高网站搜索排名jiasale wordpress 插件
  • 网页和网站做哪个好用施工企业安全管理制度
  • 网站源码区别wordpress 伪静态 分页
  • 做淘宝那样的网站麻烦吗网站开发asp.net和sql数据库
  • 吉林市网站建设招标mysql网站后台管理系统下载
  • 宁波网站推广专业服务长春网站快照优化公司
  • jsp建设网站教程吴江市建设局网站
  • 济南网站建设公司哪家好一点中国建设银行移动门户
  • 网站制作需要什么软件做直播网站找哪家网站
  • 网站开发中网页之间的链接形式apache建wordpress
  • 网站开发外包报价单网站搭建教程零基础
  • 深圳住房城乡建设局网站首页陕西省建设网官网首页
  • 阳城网站建设微信公众号开发创新
  • 网站 线框图网站兼容浏览器
  • 青岛外贸网站推广怎么自己刷推广链接
  • 网站后台清空三丰云免费服务器
  • 吴江企业网站制作虹口区建设工程管理网站
  • 做的比较好的医院网站西部数据网站助手
  • 西安做行业平台网站的公司本地合肥网站建设