windows 下开发 linux c,cloin

本文分享了在Windows环境下进行Linux C开发的经验,包括使用clone、设置虚拟机或远程主机,以及安装ssh、gcc和cmake等工具。同时提供了一些Linux C的示例代码。

最近看看linux c東西,感覺在windows下開發linux c很方便,和大家共享一下。

1.安装cloin

2.安装虚拟机或网上租个远端主机 安装好ssh,gcc,camke。

同時上傳一些linux c 的demo

### Cloin 开发 STM32 HAL 库 使用指南 Cloin 是一个功能强大的跨平台 IDE,支持多种编程语言和开发环境。在使用 Cloin 开发 STM32 HAL 库时,需要完成以下配置步骤,并提供一些示例代码以帮助开发者快速上手。 #### 1. 环境配置 为了在 Cloin开发 STM32 HAL 库项目,首先需要确保环境变量和工具链已正确配置。以下是关键步骤: - 解压相关文件到指定路径(如 `Clion_Path`),并将 `mingw` 和 `gcc-arm` 添加到系统环境变量中[^1]。 - 检测环境是否正常:通过命令行运行 `gcc -v` 和 `arm-none-eabi-gcc -v` 验证工具链是否成功加载[^1]。 - 在 Cloin 的设置中安装汉化插件并指定 CubeMX 和 OpenOCD 的路径。 #### 2. 示例代码 以下是一个简单的 HAL 库初始化和 GPIO 控制的示例代码: ```c #include "stm32f4xx_hal.h" // 定义 GPIO 引脚 #define LED_PIN GPIO_PIN_5 #define LED_GPIO_PORT GPIOA // 初始化 HAL 库 void HAL_Init_Sys(void) { HAL_Init(); // 初始化 HAL 库 } // 初始化 GPIO void GPIO_Init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能 GPIOA 时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = LED_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); } int main(void) { HAL_Init_Sys(); // 初始化 HAL 库 GPIO_Init(); // 初始化 GPIO while (1) { HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN); // 切换 LED 状态 HAL_Delay(500); // 延时 500ms } } ``` #### 3. SPI 驱动封装 如果需要使用 SPI 接口,可以参考以下头文件定义和初始化函数: ```c #ifndef STM32F407VET6_PROJECT_BSP_SPI2_H #define STM32F407VET6_PROJECT_BSP_SPI2_H #include "sys.h" extern SPI_HandleTypeDef spi2_handle; // 初始化 SPI2 void SPI2_Init(uint32_t CLKPolarity, uint32_t CLKPhase); // 初始化 MSP void SPI2_MspInit(); // 反初始化 MSP void SPI2_MspDeInit(); #endif //STM32F407VET6_PROJECT_BSP_SPI2_H ``` 实现部分如下: ```c void SPI2_Init(uint32_t CLKPolarity, uint32_t CLKPhase) { __HAL_RCC_SPI2_CLK_ENABLE(); // 使能 SPI2 时钟 SPI_HandleTypeDef hspi2; hspi2.Instance = SPI2; hspi2.Init.CLKPolarity = CLKPolarity; hspi2.Init.CLKPhase = CLKPhase; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; hspi2.Init.CRCPolynomial = 7; if (HAL_SPI_Init(&hspi2) != HAL_OK) { Error_Handler(); } } ``` #### 4. Debug 调试与寄存器查看 在调试过程中,可以通过以下方式配置 stlink 并查看寄存器值: - 创建 `stlink.cfg` 文件并写入相应配置[^3]。 - 在断点处进行测试,并通过 STM32 SVD 文件查看寄存器值[^3]。 #### 5. 注意事项 - 确保工程路径无中文或特殊字符[^1]。 - 在 `CMakeLists.txt` 文件中正确指定 `.h` 和 `.c` 文件路径[^1]。 - 使用 `printf` 函数时需重定向输出至 UART 接口。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值