# LUA-STM32 **Repository Path**: slick-zhang/lua-stm32 ## Basic Information - **Project Name**: LUA-STM32 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-06 - **Last Updated**: 2025-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # STM32F303 Lua 项目 这是一个基于 STM32F303 系列微控制器的嵌入式项目,集成了 Lua 脚本语言以实现灵活的应用逻辑控制。该项目主要用于在嵌入式系统中通过 Lua 脚本控制硬件功能,例如 GPIO、UART 和系统时钟配置。 ## 项目结构 - **Core/**: 包含 STM32F303 的核心代码,包括初始化、中断处理、系统时钟配置等。 - **Drivers/**: 包含 STM32 HAL 驱动和 CMSIS 核心头文件。 - **Middlewaves/lua/**: 集成的 Lua 解释器源码,用于在嵌入式系统中执行 Lua 脚本。 - **CMakeLists.txt**: CMake 构建配置文件。 - **启动文件**: 包括链接脚本 `STM32F303XX_FLASH.ld` 和启动汇编文件 `startup_stm32f303xc.s`。 ## 主要功能 - **Lua 脚本支持**: 通过 Lua 脚本控制硬件功能。 - **GPIO 控制**: 支持通过 Lua 脚本控制 LED 灯的开关。 - **串口通信**: 提供 UART 初始化和通信功能。 - **系统时钟配置**: 初始化系统时钟并提供 SysTick 定时功能。 ## 核心模块说明 ### Core/Src/main.c 这是主程序入口,包含以下关键函数: - `SystemClock_Config`: 配置系统时钟。 - `main`: 主函数,初始化硬件并进入 Lua 脚本执行循环。 - `lua_led_on`, `lua_led_off`: 用于从 Lua 脚本控制 LED 的函数。 - `lua_delay`: 提供延时功能的 Lua 函数。 ### Middlewaves/lua 集成的 Lua 解释器源码,支持完整的 Lua API,允许在嵌入式系统中运行 Lua 脚本。 ### Core/Src/gpio.c 提供 GPIO 初始化函数 `MX_GPIO_Init`,用于配置 LED 和其他 GPIO 引脚。 ### Core/Src/usart.c 提供 UART 初始化和 MSP(MCU Support Package)函数,用于串口通信。 ## 使用说明 ### 编译项目 确保安装了 ARM GCC 工具链和 CMake,然后使用以下命令构建项目: ```bash mkdir build cd build cmake .. make ``` ### 烧录与调试 使用支持 STM32 的调试器(如 ST-Link)将生成的 `.elf` 文件烧录到目标设备,并通过调试器进行调试。 ### Lua 脚本示例 在 `main.c` 中定义了以下 Lua 函数,可在脚本中调用: - `led_on()`: 打开 LED。 - `led_off()`: 关闭 LED。 - `delay(ms)`: 延时指定毫秒。 示例 Lua 脚本: ```lua while true do led_on() delay(500) led_off() delay(500) end ``` 该脚本会循环点亮和熄灭 LED,间隔为 500 毫秒。 ## 依赖项 - STM32CubeMX(用于生成初始化代码) - ARM GCC 工具链 - CMake - Lua 解释器(已集成) ## 许可证 本项目使用 MIT 许可证,请参阅 [LICENSE.txt](LICENSE.txt) 获取详细信息。 ## 贡献指南 欢迎提交 Pull Request 和 Issue 报告。请遵循项目代码风格和贡献规范。 ## 联系方式 如有问题,请联系项目维护者或在 Gitee 上提交 Issue。 ```