(实测可用)GD32F303RCT6开发板移植RT-Thread操作系统(解决第一次移植后无法启动无法进入main函数问题)

一、开发板平台简介:

1、开发板资源简介

(1)开发板主芯片型号:GD32F303RCT6

(2)开发板主芯片封装:LQFP-64_10x10x05P

(3)开发板主芯片内核:ARM® Cortex®-M4

(4)开发板主芯片主频:120MHz

(5)开发板主芯片Flash大小:256KB

(6)开发板主芯片RAM大小:48KB

2、Debug调试串口简介

        串口全称为串行通讯接口,即数据在通信线上一次传输一位,按先后一定顺序传输。我们通常所说的单片机串口准确来说应该是串行异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART),使用TTL电平,串口需要RXD、TXD、GND三根线进行通信。

(1)我们选用的GD32F303RCT6开发板串口0已通过USB转TLL串口芯片CH340G引出,使用时,只需要用公对公USB线连接电脑即可(注意也得安装CH340G驱动)。

(2)开发板上的其他串口已通过排针引出,为TTL电平,通信的时候需要注意选择对应的电平模块,如USB转TTL串口模块等。

二、快速上手RT-Thread

1、选择合适的BSP

(1)我们这里选择GD32303E-EVAL BSP驱动进行移植。可通过如下参考链接下载bsp:

GD32303E-EVALhttps://github.com/RT-Thread/rt-thread/tree/master/bsp/gd32303e-eval

(2)下载上述bsp后就可以在开发板上进行移植尝试了。

2、移植BSP

        已下载的GD32303E-EVEL BSP工程文件,是使用 GD32F303ZET6 作为主控制器的,想要移植到我们的GD32F303RCT6开发板上,需要进行简单的修改,如下:

(1)找到gd32f303-bsp文件,并打开项目。

 

 (2)选择options for target-->选择GD32F303RC芯片。

(3)选择对应的下载器,我这里使用的是jlink ,并选择SWD下载模式。

(4) 设置Flash Download下载模式。

(5)那么接下来重点来了,直接下载的代码在GD32F303RCT6是无法运行的,因为GD32F303ZET6的RAM大小为64K,但是GD32F303RCT6的RAM大小为48K。此处需要在board.h头文件中把RAM大小(GD32_SRAM_SIZE)修改为48,如下所示:

 (6)修改后,重新编译下载,即可通过Debug串口看到打印的log信息。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于型号为GD32F303RCT6开发板的智能车基础电磁组PID算法代码,以下是一个简单的示例: ```c #include <stdio.h> // 定义PID参数 float Kp = 0.5; float Ki = 0.2; float Kd = 0.1; // 定义全局变量 float error = 0; float last_error = 0; float integral = 0; // PID控制函数 float pid_control(float target, float current) { // 计算误差 error = target - current; // 计算积分项 integral += error; // 计算微分项 float derivative = error - last_error; // 计算PID修正量 float correction = Kp * error + Ki * integral + Kd * derivative; // 更新上一次误差值 last_error = error; return correction; } int main() { // 模拟电磁感应器的数据 float sensor_data = 10.0; // 设置目标值(中心线) float target_value = 5.0; // 循环进行PID控制 for (int i = 0; i < 10; i++) { // 获取PID修正量 float correction = pid_control(target_value, sensor_data); // 根据修正量调整车辆转向 // 这里只是简单打印修正量,实际应用需要根据具体情况进行操作 printf("Correction: %.2f\n", correction); // 模拟感应器数据变化(假设车辆朝着目标值靠近) sensor_data -= correction; } return 0; } ``` 上述代码演示了一个简单的基于PID算法的智能车电磁组控制示例。根据实际情况,你可能需要根据传感器和电机的具体接口进行相应的配置和控制。请注意,这只是一个简单的示例,实际项目中可能需要更复杂的控制逻辑和参数调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式ZYXC

谢爷的赏

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

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

打赏作者

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

抵扣说明:

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

余额充值