使用的是野火F429,哎就是好久没摸了要再重头炒回锅肉,老菜鸡了,这次想慢慢的基础一下。
一、下载准备
1.串口下载:要配置一下boot0,boot1;我当时没有把boot1置高,半天接收不到数据,下载不了程序。
但是如果BOOT0不接到GND,重启就看不到效果了…真的很鸡肋…就不停的换过去换过来,太麻烦了!。在这里插入图片描述2.DAP下载
一根接USB转串口给底板供电。但是有的时候我在按settings老是IDE要闪退,我看的是网上说的是 在工程路径下找到与项目同名的 .UVOPTX 文件 uvoptx文件记录了工程的配置选项,如下载器的类型、变量跟踪配置、断点位置以及当前已打开的文件等等,闪退的原因就是这个文件引起的 删除后 重新编译保存项目便可解决闪退奔溃问题。但是呢我还是要闪退,先放着明天来解决一下吧。
(明天:我把整个MDK和C51卸载了重新来了一遍…就好了QWQ)
二、固件库准备
可以利用固件库里面的库文件进行库的查询,里面怎么用那些函数都写得很清楚。
三、GPIO
最右边是外部引脚,左边是内部结构,方便我们理解什么是开漏、推挽和禁止模式。之前其实一直都没有好好分析过这些结构,但是学了模电了数电(ing)以后,一切都变得很好玩了。
这里的结构就是要给GPIO一个确定的电压进去,低电平下拉都是在一个范围内的。使它拥有一个默认的状态。
2. P-MOS 管和N-MOS 管
其实掰扯半天记得住实用的场合就行了:
四、代码部分
一些常用的结构体指针指向的寄存器。
A.
(英文中―Set‖表示“置位”,即高电平,“Reset”表示“复位”,即低电平)
首先我们需要定义并初始化GPIO结构体,一共有5个步骤:且不希望每次用到都要去查找这些索引值,所以使用C 语言中
的枚举语法定义这些参数。
这样我们的GPIO_InitTypeDef 结构体也可以使用枚举类型来限定输入。
B.字符类型的规定
那么针对我们这些改代码的,只需要修改一下四个C文件。其他的不用做任何修改。除了系统时钟以外。
可以在库的上述栏目进行查询固件库函数的使用方法。
C一个工程中包括的有
我要动的部分:
五、实战
1.点亮一个RGB灯,说实话我想搞个黑色或者粉红色也行啊!
代码部分:
在USER文件夹下创建一个LED文件夹存放bsp_led.c/bsp_led.h的文件用于用户自定义。
为了规范,首先我们要写的是 bsp_led.h里面的宏定义。
其中的GPIO 时钟宏“RCC_AHB1Periph_GPIOH”“RCC_AHB1Periph_GPIOD”是STM32 标准库定义的GPIO 端口时钟相关的宏,所以在写头文件的时候也要引用GPIO和RCC两个头文件。
在这里插入图片描述我们进入RCC的宏里面可以发现,GPIOA–K都在AB1里面,其他的用到再慢慢记。
其次就是***控制RGB混色的宏***,先不用PWM做。
然后就是对GPIO端口使能
特别要强调一下输入有上拉,下拉,浮空模式。这里指的是在没有输入的时候,该管脚的状态。比如这个LED我们最开始的时候坑定是期望他关上的,那么就应该设置为上拉模式,这是没有输入的高电平状态不导通。
最主要区别在于没有输入信号的时候默认输入高电平(因为有弱上拉)。下拉输入模式:区别在于没有输入信号的时候默认输入低电平(因为有弱下拉)。对于浮空输入模式顾名思义也就是输入什么信号才是什么信号,对于浮空输入要保证有明确的输入信号。
最后在Main里面进行调用即可,这个程序出来的应该是黄光。
那现在我们走吧~