大疆c板开发例程
文章目录前言一、基础学习1.1 LED基本知识1.2 程序学习1.2.1 cubeMX中配置GPIO1.2.2 GPIO相关函数讲解1.2.2.1 HAL_GPIO_TogglePin1.2.2.2 HAL_GPIO_WritePin1.2.2 小结小插曲关于如何流畅浏览github1.2.3 程序流程编写bsp_led_toggle函数main函数编写编译、烧录即可二、1.3 进阶学习1.3.1 三极管的通断特性辨别方法三极管的控制逻辑1.3.2 LED的下拉电阻1.3.3 硬件原理图上的限流电阻1.4 总结前言本系列文章主要记录个人学习大疆c板开发同时也供读者参考在该系列中直接跳过cubemx新建工程的内容直接从开启c板led灯开始一、基础学习1.1 LED基本知识LED 即发光二极管当 LED 内有电流通过时会发光在安全电流范围内电流越大亮度越亮。1.2 程序学习1.2.1 cubeMX中配置GPIO1.根据原理图可以看出三个LED的引脚为PH10,PH11,PH122. 在cubeMX中配置GPIO为输出模式在cubeMX找到对应引脚配置成GPIO_Output模式3. 在cubeMX中修改对应引脚的名字在左侧找到 SystemCore - GPIO 找到对应的GPIO,例如PH12 然后选中对应的引脚修改  然后生成代码1.2.2 GPIO相关函数讲解我们可以下载对应芯片的固件库里面有一个帮助文档全面的介绍了各种封装好的函数对于c板芯片的固件库可以通过访问下面的链接来下载https://www.st.com.cn/zh/embedded-software/stm32cubef4.html或者在github下载https://github.com/STMicroelectronics/STM32CubeF4/tree/master我们可以在类似这种路劲下面找到我们需要的帮助文档这里用f1芯片举例子\stm32cubef1-v1-8-6\STM32Cube_FW_F1_V1.8.0\Drivers\STM32F1xx_HAL_Driver找到.chm扩展名结尾的文件然后右键选择别的方式打开我们选择红色圈出来的方式打开打开后可以看见下面这种界面然后在左侧目录那一栏可以自行点击进行浏览我们点击Modules展开然后展开第一个可以看到几乎所有的函数都根据模块进行了分类然后在这里被列出来了我们现在点击GPIO那个折叠目录然后依次展开GPIO Exported Functions和IO operation functions 和 functiions然后就看到了我们现在要讲的函数了——HAL_GPIO_TogglePin 和 HAL_GPIO_WritePin我们点进去可以看到所有关于这个函数的信息都在这里1.2.2.1 HAL_GPIO_TogglePin接受的参数是GPIO口和具体的引脚返回的参数是None下面也写好了具体的定义在哪个文件的第几行方便查找源码同时也给出了其他相关的接口1.2.2.2 HAL_GPIO_WritePin接受的参数GPIO口和具体的引脚和需要变化到的引脚状态高电平或者低电平返回的参数None下面是定义以及其他相关的内容1.2.2 小结这里分享了如何自己查阅各种函数的方法当然也有别的方法在keil里面甚至直接就可以看到所有函数也可以直接查看数据手册方法很多大家都可以尝试尝试由于篇幅限制和时间原因本文就只讲上面这一种方法了。小插曲关于如何流畅浏览github可以下载一个watt toolkit直接在微软软件商店里面搜索就可以浏览器搜索当然也可以下载但是支持的下载方式只有网盘下载或者别的反正没办法直接下载下载完成之后会看到下面这种界面{HAL_GPIO_TogglePin(LED_R_GPIO_Port,LED_R_Pin);HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);HAL_GPIO_TogglePin(LED_B_GPIO_Port,LED_B_Pin);}main函数编写intmain(void){/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while(1){bsp_led_toggle();user_delay_ms(500);bsp_led_toggle();nop_delay_ms(500);bsp_led_toggle();HAL_Delay(500);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */}编译、烧录即可二、1.3 进阶学习1.3.1 三极管的通断特性三极管主要分为两种类型一个是NPN型一个是PNP型看到上面这张图里面很明显的看到一个三极管有三个伸出来的”触手“以左上角的PNP型为例其中b端叫做基极这集积极有点向下了 不是e端叫做发射极c端叫集电极辨别方法基极一眼就能看出不用判断中间的就是基极Bbase。然后判断发射极带箭头的就是发射极Eemitter。最后判断集电极不带箭头的就是集电极Ccollector。三极管的控制逻辑先给出结论结论就是NPNN管基极B给高电平CE导通。PNPP管基极B给低电平CE导。三极管在电路中最常用作开关。用作开关时的工作原理基极是控制端根据三极管种类是NPN还是PNP来给基极高电平或者低电平那么三极管的CE两极就会导通。三极管的工作原理类似于水龙头控制水管通断。1.3.2 LED的下拉电阻在这张图片中可以看到每个led后面都有下拉电阻这个电阻的作用是在程序未发生控制行为的时候需要将电压控制到低电平保证器件不被意外触发对于三极管来说主要为下拉电阻之外还有上拉电阻。1.3.3 硬件原理图上的限流电阻LED需要在一个合适的电流下工作同时这里的限流电阻不同路的阻值还不一样我们可以看到绿色色的限流电阻阻值最大红色支路上的阻值最小。人眼对不同波长的光的敏感度不一样所以需要设置不同大小的阻值来最终可以发出白光。1.4 总结本文讲述了GPIO相关的具体编写步骤包括了新建工程配置GPIO以及各种参数还有一些有关三极管的基础知识讲解同时也讲述了查阅固件库函数的方法以及流畅浏览GitHub的方法。相信看完本文你会学到不少东西的。一起加油