zoukankan      html  css  js  c++  java
  • stm32CubeMX 结合Rtthread Env做BSP框架

    1.配置工程路径和工程名,设置堆栈大小

    2.配置时钟,定时器时钟HCLK 72M

    3.Usart 串口配置

    有了这个工具,PGIO,TIM,DMA,ANALOG,PWM的配置所见即所得

    在RTT平台上使用,只需要自动生成代码的 数 SystemClock_Config() ,该函数负责初始化系统时钟。当使用 CubeMX 工具对系统时钟重新配置的时候,需要更新这个函数。

    后续的配置,可以参考http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=622000

    由于RTT已包办l496zg-nucleo的BSP,我们就不再重复制作轮子,开始下一步,加载AT 组件.

    4.ENV 工具选取相关模块,测试在NUCLEO-L496ZG开发板实现USB Host读写U 盘,这块开发板自带USB-OTG模块,再加上RTT ENV工具及软件包,整个工程就像搭积木一般。

    由于NUCLEO-L496ZG开发板bsp 工程中没有BSP_USING_USBH 配置选项,得手动在BOARD文件夹的Kconfig中添加

    menuconfig BSP_USING_USBH
    bool "Enable USB Host" 
    select RT_USING_USB_HOST
    default n
    
    if BSP_USING_USBH
    menuconfig RT_USBH_MSTORAGE
    bool "Enable Udisk Drivers"
    default n
    if RT_USBH_MSTORAGE
    config UDISK_MOUNTPOINT
    string "Udisk mount dir"
    default "/"
    endif 
    endif

    然后在打开ENV工具,使能 Enable USB Host, 退出并重新生成MDK5工程

     5. 打开文件系统, 参照rtt文档:https://www.rt-thread.org/document/site/application-note/driver/usb/an0046-rtthread-driver-usbh/

     6,编译出现一个错误, identifier UART_HandleTypeDef" is undefined hal"

    原来是stm32l4xx_hal_conf.h缺了个宏定义,#define HAL_HCD_MODULE_ENABLED加上后编译通过

      

     

  • 相关阅读:
    多进程多线程的选择
    MessageBox常用用法
    Ioc 控制反转 实例
    解决 MVC 用户上线下线状态问题
    你不知道的东西! c# == 等于运算符 和 Object.Equals()
    一个明确的目标
    .NET String.Format 方法 线程安全问题
    IEnumerable 接口 实现foreach 遍历 实例
    Android闹钟 AlarmManager的使用*
    @Java四种引用包括强引用,软引用,弱引用,虚引用
  • 原文地址:https://www.cnblogs.com/7star/p/13338109.html
Copyright © 2011-2022 走看看