关于rt项目开发过程中的排坑记及stm32xx_hal_msp说明cubemx重映射设置
-
- scatter file(分散)文件,rtt官网给出的其实是一个脚本文件有什么作用??
- stm32l4xx_hal_msp.c文件的作用?
- 关于VCP(虚拟串口)
- 关于找不到用ENV编译找不到stm32l4_XX.h的错误,如下图:这个坑,折腾了一晚上。
- 自己的工程是利用现成STM32L432 ST官方的DEMO来建的工程,每用ENV工具重新生成MDK5工程后,都会自动添加STM32L432 的启动文件,而自己所用的是STM32L431,这样就不太相符了?
- 打开串口设置时,提示不成功,返回值为-1或-8的问题。(后来经查,可能不是这里的原因,RTT用DMA_RX收的话,就会有这样的问题,用INT就可以正常打开)
- 使用自动初始化INIT_APP_EXPORT出现Incompatible pointer types initializing,指针类型不匹配的警告
- 用官方的PWM例程,只是改到了TIM15_CH2,没有输出?
- 添加fal时出现ArmClang: error: unsupported option '--c99'
- 这部分内容其实是与rt-thread无关的,但有可能会在配置时遇到,所以记录下???如何用cubemx查找相同的映射管脚??
- 调试lpuart口时,遇到波特率无法设置为9600问题?
- 现象为加载写好的rtDemo文件,用cumx生成新的配置后,串口1无打印输出???
- 应该说是keil的一个问题:无法完成函数定义的跳转No information available for the selected symbol??
- cubemx6.5以后的版本,自动生成代码会生成一个core文件夹如何去掉?
- 关于用st-link v2,连不上st unlity及MDK5的问题???
格式化之前写过的文章
scatter file(分散)文件,rtt官网给出的其实是一个脚本文件有什么作用??
如下图:

这是keil官网给出的语法解释:

从中可以看出link.sct文件,意思就是链接时,扩展出了SRAM2的内存地址 。
stm32l4xx_hal_msp.c文件的作用?
这是文件本身的描述:主要是初始化代码。

MSP,全称为 MCU support package,函数名字中 带有 MspInit 的函数,它们的作用是进行 MCU 级别硬件初始化设置,并且它们通常会被上一层的初始化函数 所调用,这样做的目的是为了把 MCU 相关的硬件 初始化剥夺出来,方便用户代码在不同型号的 MCU 上移植。
stm32l4xx_hal_msp.c 文件定义了两个函数 HAL_MspInit 和 HAL_MspDeInit。这两个函数分别被文件 stm32l4xx_hal.c 中的 HAL_Init 和 HAL_DeInit 所调用。
HAL_MspInit 函数的主要作用是进行 MCU相关的硬件初始化操作。例如我们要初始化某些硬件,我们可以硬件相关的初始化配置 写在HAL_MspDeinit 函数中。这样的话,在系统启动后调用了 HAL_Init 之后,会自动调用硬件初始化函数。
实际上,我们在工程模板中直接删掉 stm32l4xx_hal_msp.c 文件也不会对程序运行产生任何影响。
关于VCP(虚拟串口)
其实,就是将STM32USB口视为一个串口。优快云原理参考
实现:
1、CubeMX就能快速生成USB工程了
步骤:
->RCC里高速和低速时钟都选择外部晶振Crystal
->Connectivity-USB勾线Device(FS),端口默认PA12(USB_DP),PA11(USB_DM)

->Middleware-USB-DEVICE里Class For FS IP选择Communication Device Class(Virtual Port Com)

->生成代码后,
->电脑端要安装驱动,如下图:

最低0.47元/天 解锁文章
1704





