正点原子HAL库/FreeRTOS学习记录

平台:

正点原子stm32f103 mini开发板 GD32F103C8T6芯片

HAL库/STM32CUBEMX学习记录

1. 在stm32cubeMX中找到合适的芯片

stm32f103rct6和gd32f103rct6引脚相同,故使用stm32f103rct6开始工程

2. 时钟配置

如图配置时钟使其匹配本工程所接的外部晶振,并配置系统工作时钟至72MHz

3. RCC配置

从晶振获取

4. SYS配置

如果需要通过ST-LINK进行烧录,则选择串联连接

5. 引脚配置

如图所示,根据左侧工具栏提示以及匹配板子原理图,配置GPIO,定时器,串口,DMA等工程中所需的配置。

问题记录

因工程需要,调试串口被安排至UART5

当利用STM32CUBEMX配置完成硬件基础配置后,测试串口5输出为乱码;无论打印中文或英文。

排除波特率问题,排除中英文编码问题,排除接线问题,排除外部晶振问题。

最后定位问题为调试串口时接的是RS232(DB9)线,而USART3,UART4,UART5未经过TTL转232电平转换。

将调试工具从RS232(DB9)线换为USB-to-TTL模块后解决问题。

FreeRTOS移植

按照正点原子提供的STM32F1 FreeRTOS教程进行移植

问题:函数重复定义

..\OBJ\FreeRTOS.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by port.o and stm32f10x_it.o).

..\OBJ\FreeRTOS.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by port.o and stm32f10x_it.o).

将stm32f10x_it.h以及stm32f10x_it.c中的PendSV_Handler和SVC_Handler函数屏蔽即可

问题: "include FreeRTOS.h must appear in source files before include task.h"

解决方法:

需在task.h中首先包含FreeRTOS.h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myqpy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值