# gd32fun **Repository Path**: pomimi/gd32fun ## Basic Information - **Project Name**: gd32fun - **Description**: gd32+FreeRTOS+MQTT+u8g2 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-16 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README GD32F30x FreeRTOS Project ========================= ## 项目简介 本项目是基于GD32F30x系列MCU的FreeRTOS应用开发模板。项目集成了CMSIS核心驱动、GigaDevice外设驱动和FreeRTOS实时操作系统,提供了完整的嵌入式开发环境配置和任务调度功能。 ## 主要功能 - 完整的FreeRTOS系统移植(ARM Cortex-M4内核支持) - 多任务调度示例(LED控制/TIMER管理/ADC采集) - 外设驱动支持: - USART/DMA双缓冲串口通信 - I2C传感器驱动(BMP280示例) - ADC数据采集与处理 - Wi-Fi通信(ESP-01模块支持) - 同步机制: - 信号量(Mutex_Handle) - 事件组(EventGroup_Handle) - 消息队列(myqueue_Handle) ## 项目结构 ``` ├── CMSIS/ # CMSIS核心文件 ├── EIDE/ # 开发环境配置 ├── FreeRTOS/ # FreeRTOS源码 ├── Hardware/ # 硬件外设驱动 │ ├── BMP280.c # 温压传感器驱动 │ ├── MyUSART.c # USART+DMA驱动 │ └── ... # 其他外设驱动 ├── Peripherials/ # GD官方外设驱动 │ ├── Source/ # 外设源文件 │ └── Include/ # 外设头文件 └── user/ # 用户层代码 ├── free.c # FreeRTOS任务初始化 ├── main.c # 主函数 └── systick.c # 系统滴答定时器 ``` ## 开发环境 - **MCU**: GD32F30x系列(Cortex-M4) - **编译器**: ARM GCC/Keil MDK - **调试器**: J-Link/ST-Link - **外设支持**: - USART0/1 - ADC0/1 - I2C0/1 - 定时器(TIMER3等) - GPIO中断(EXTI) ## 使用说明 1. **硬件初始化** ```c SystemInit(); // 系统时钟初始化 systick_config(); // SysTick配置 ``` 2. **外设初始化** ```c MYIIC_Init(0x76); // I2C初始化 ADC_Init(); // ADC配置 Key_Init(); // 按键中断 ``` 3. **任务创建** ```c xTaskCreate(LED_Task, "LED", 128, NULL, 1, &LEDTask_Handler); xTaskCreate(TIM_Task, "TIM", 128, NULL, 1, &TIMTask_Handle); ``` 4. **资源同步** ```c Mutex_Handle = xSemaphoreCreateMutex(); myqueue_Handle = xQueueCreate(10, sizeof(uint16_t)); EventGroup_Handle = xEventGroupCreate(); ``` ## 注意事项 - 确保`system_gd32f30x.c`中时钟配置与实际硬件匹配 - 使用DMA传输时需注意内存对齐 - FreeRTOSConfig.h中需根据MCU型号调整: - `configCPU_CLOCK_HZ` - `configUSE_PREEMPTION` - `configMAX_PRIORITIES` - 外设驱动需包含对应的RCU时钟: ```c rcu_periph_clock_enable(RCU_GPIOA); // 示例:启用GPIOA时钟 ``` ## 依赖库 - **CMSIS**: ARM Cortex-M系列内核支持 - **FreeRTOS**: 实时操作系统内核 - **GD32F30x_DFP**: GigaDevice官方驱动 ## 版权声明 遵循GD32F30x_DFP和FreeRTOS的原始许可协议 ## 联系方式 项目维护邮箱:zdtyhm@gitee.com