完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于IAR workbench
下决心要学习stm32有一段时间了,从网上找到一些资源,我要自学网的黄老师很良心,理论性的知识讲的不多,干货和实操很给力。下面讲一下学习的过程。 1、工程模板建立 对于初学者来说,有些繁琐。因为人家有非常详细的教程,所以我不细讲,我就把我建立模板中的问题跟大家说说。首先,打开option选项的时候,光标一定要打到左侧workspace中你所建立的项目上,否则,出来的是另一种窗口;第二,包含文件路径的时候一定要把你所有用到的文件路径全部包含,而且各级树目录格式要正确,他视频里缺了一个 ,导致我调试了半天,才解决,毕竟新手,大家原谅。建好模板以后就直接用。 2、代码编写 点灯是每个单片机和嵌入式学习者必练的项目,思路也很简单,对于一般单片机就是要把引脚电平拉低,也有拉高的。但是32毕竟是工程级的微控制器,配置比较多,但是幸好有库,开始觉得很麻烦,用熟悉了之后感觉有的配置比51还简单,但是32有一系列时钟树和配置寄存器,这点比51复杂。回到正题。配置过程大概如下。首先查芯片手册,找出GPIO的时钟树,每个外设都有对应的时钟树,频率还不同。不同于51,只有一个时钟频率。这里要开启的是APB2总线的时钟,因为GPIO挂架在APB2总线上,然后是引脚的配置,stm32官方库已经定义好了GPIO的初始化结构体,自己定义一个结构体变量,查找固件库开发手册,然后进行赋值,再调用gpio初始化函数。主函数很简单,调用gpio初始化函数,然后再调用gpio复位函数,即可,这里电亮的是PB15。 上代码 端口初始化函数 #include “led.h” void led_gpio_init(void) { GPIO_InitTypeDef GPIO_InitStructure; /*使能GPIOB的rcc时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*配置GPIO引脚*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*初始化GPIO*/ GPIO_Init(GPIOB, &GPIO_InitStructure); } 主函数 #include “led.h” int main(void) { led_gpio_init(); GPIO_SetBits(GPIOB,GPIO_Pin_15); return 0; } 总结 1、配置流程 查找stm32f103手册的时钟树,找到需要开启gpio的时钟——APB2; 定义gpio初始化结构体,查找stm32f10x固件库手册,按照要求赋值,选择开启的引脚,选择gpio工作模式,选择gpio工作频率。并调用gpio初始化函数; 在主函数中调用gpio的置位(复位)函数。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1885 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1663 浏览 1 评论
1149 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
763 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1964浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
790浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
616浏览 3评论
631浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
593浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-14 05:35 , Processed in 1.050074 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号