完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、准备开发板
这里我选用了一块网红开发板:”小熊派“,这款板子的人气比较高,还是全国大学生物联网设计竞赛(华为杯)的华为竞赛开发板,我个人也比较喜欢用这款板子,这款板子在放在纸箱吃灰半年之后,被我重新拿了起来,并想借此写博客的机会,整理一下自己的代码。 开发板功能区分布图 开发板俯视图 外设引脚对应表 [tr]MCU引脚引脚标注名[/tr]
2、STM32CubeMX生成代码 搜索并选择芯片型号 配置系统时钟 配置时钟树 STM32L4的最高主频可达到80M,最后使HCLK = 80Mhz即可: 配置GPIO引脚 修改引脚的用户标签(相当于取另一个新名字) 生成工程设置 代码生成配置 生成代码 生成成功 3、在MDK中编写代码 在gpio.h的用户代码区编写以下代码: /* USER CODE BEGIN Includes */ typedef enum { LED_OFF = 0, LED_ON, LED_Toggle } LED_ENUM; /* USER CODE END Includes */ /* USER CODE BEGIN Private defines */ #define LED_Set(status) status != LED_Toggle ? HAL_GPIO_WritePin( LED_GPIO_Port, LED_Pin, status != LED_ON ? GPIO_PIN_RESET : GPIO_PIN_SET): HAL_GPIO_TogglePin( LED_GPIO_Port, LED_Pin); //利用define可以美化和简短我们的代码,知识点就用到了三目运算符的嵌套判断。 /* USER CODE END Private defines */ 在main.c中的main函数中编写以下代码 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ LED_Set(LED_Toggle); //翻转LED HAL_Delay(1000); //延时1秒 /* 下面的代码等效于上面的代码 */ // LED_Set(LED_ON); //点亮LED // HAL_Delay(1000); //延时1秒 // LED_Set(LED_OFF); //熄灭LED // HAL_Delay(1000); //延时1秒 } /* USER CODE END 3 */ 4、配置烧录器 5、烧录代码 6、实验现象 控制LED小灯每1秒钟闪烁一次。 |
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1180浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 20:51 , Processed in 1.291642 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号