zoukankan      html  css  js  c++  java
  • RT-Thread can

    SDK版本v4.0.2

    目前,RT-Thread Studio还不能够自定义添加can设备。下面介绍手动添加过程:

    使用RT-Thread Studio创建一个简单工程

    image

    使用RT-Thread env工具添加CAN设备

    保存以后,rtconfig.h配置文件会随之修改

    image

    拷贝sdk中can样例到工程中

    image

    修改stm32f1xx_hal_conf.h文件

    开启宏定义

    #define HAL_CAN_MODULE_ENABLED

    添加can实现到构建

    默认可以看到是取消构建的,编译会报错

    image

    image

    添加GPIO初始化

    gpio不初始化,can打开始终是失败。系统会自动调用。

    void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)
    {
        GPIO_InitTypeDef GPIO_InitStruct;
    #ifdef BSP_USING_CAN1
        if(canHandle->Instance==CAN1)
        {
            /* CAN1 clock enable */
            __HAL_RCC_CAN1_CLK_ENABLE();
            __HAL_RCC_GPIOA_CLK_ENABLE();
    
            /**CAN1 GPIO Configuration
               PA11     ------> CAN1_RX
               PA12     ------> CAN1_TX
             */
            GPIO_InitStruct.Pin = GPIO_PIN_11;
            GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
            GPIO_InitStruct.Pull = GPIO_PULLUP;
            HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
            GPIO_InitStruct.Pin = GPIO_PIN_12;
            GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
            GPIO_InitStruct.Pull = GPIO_NOPULL;
            GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
            HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
        }
    #endif /* USING_BXCAN1 */
    
    #ifdef BSP_USING_CAN2
        if(canHandle->Instance==CAN2)
        {
            /* CAN2 clock enable */
            __HAL_RCC_CAN2_CLK_ENABLE();
            __HAL_RCC_GPIOB_CLK_ENABLE();
    
            /**CAN2 GPIO Configuration
               PB12     ------> CAN2_RX
               PB6     ------> CAN2_TX
             */
            GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_6;
            GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
            GPIO_InitStruct.Pull = GPIO_NOPULL;
            GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
            HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
        }
    #endif /* USING_BXCAN2 */
    }

    源码地址如下:

    https://github.com/zwx230741/rt_can.git

  • 相关阅读:
    正则表达式
    什么是面向对象
    关于jdk,jre,jvm和eclipse的一些总结
    分析ajax爬取今日头条街拍美图
    pycharm误删恢复方法及python扩展包下载地址
    django 之 视图层、模板层
    django
    django框架基础二
    jdango框架基础一
    安装软件,提高速度,可以使用清华源
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/12359500.html
Copyright © 2011-2022 走看看