stm32的普通GPIO编程的工程中到底要包含哪些文件?怎么连流水灯也有那么多文件啊? 感觉跟普通的单片机

的用法相差好大啊!我看main函数中也只包含一个头文件啊,怎么工程中有那么多文件,不要可不可以?到底stm32是怎么编程的,我看程序很多时候都在调用固件库的函数啊,调用固件库是不是用stm32编程的基本思想啊?以前我用51编程很少调用函数库的,感觉一下子思维转不过来了

嘿嘿,那是当然了,STM32是32位单片机,51是8位机,两者不是一个数量级的。
51单片机的I/O口就是I/O口,没那么多功能,
而STM32呢,它的GPIO口既可以做数字I/O,有些也可以做A/D,D/A,有些可以做SPI或者I2C对外通讯,还有些是做PWM脉宽输出,功能各有不同。这些功能都需要实现配置好才能让单片机知道你打算怎么用这些口。51简单死了,没有A/D,D/A,没有SPI通讯,也没有PWM,就是I/O,每个口也只有那么一个寄存器,直接读写就完了。
而到了32位机就不一样了,那么多功能,那么多寄存器,如果不用库的话,就要一位一位地把每个寄存器都设好,非常麻烦。ST专门给STM32编制了一个函数库,所有的函数库设置你只需要调用函数库的函数就好。如果你英语还说得过去的话,看着函数库就可以基本不用去每一位对寄存器了,牺牲了效率,但是非常非常的方便。

至于使用起来,也非常简单,比如你要用GPIO,你就把STM32F10X_GPIO.C加到你的工程文件中去,然后在你在程序里引用一下#include "stm32f10x.h",就可以了。当然,我觉得这么做还要一个一个文件地想,到底需要不需要,干脆把所有的C文件都加到工程里去,然后在编译器里打开Level-2优化,这样没有用到的函数都不会被编译到最终的hex文件中去了。想用到什么函数都可以,非常方便的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-05
其实要用GPIO,在工程里面需要加入gpio、rcc、flash、lib。对于使用了不同的外围器件,就要相应的选择不同的文件,但是flash、rcc和lib是一定要有的。写的程序你可以用thumb-2,也可以用写寄存器的方法,但是很多人会选择固件库,因为使用方便,开发效率快,但是有时候也会出现一些问题的,其实如果想学好STM32,写寄存器是不错的选择。
第2个回答  2011-11-02
嘿嘿,那是当然了,STM32是32位单片机

STM32对GPIO操作一般用库函数,我想知道怎样用位操作实现流水灯?谢谢了...
使用GPIO功能前,首先要初始化系统,最简单的方法为:添加stm32f10x_rcc.c,打开stm32f10x_conf.h 在第41行将\/* #include "stm32f10x_rcc.h""*\/两边注释符去掉,在main函数中添加代码SystemInit();添加stm32f10x_gpio.c 打开stm32f10x_conf.h 在37行将\/*#include "stm32f10x_gpio.h"*\/...

用stm32写一个八位流水灯的程序
\/\/工程不管哦亲\/\/默认共阳极\/\/头文件自己写\/\/这是.c文件注意函数声明哦亲void GPIO_Init(void){ RCC->APB2ENR |=1<2; \/\/打开时钟 GPIOA->CRL &=0x00000000; \/\/ GPIOA->CRL |=0x33333333; \/\/推挽输出 GPIOA->ODR |=0xFF<<0; \/\/输出1}void Loop...

stm32cubemx 组态怎么实现
点击Open Project打开工程。到此就配置好工程外设初始化。点击Build按钮,Build Optput信息框会输出没有错误没有警告。6. 添加应用程序 在gpio.c文件中可以看到LED管脚的初始化函数。在stm32f1xx_hal_gpio.h头文件中可以看到GPIO的操作函数。在main函数中的while循环中添加LED流水灯效果的应用程序。重...

cubemax怎么不生成mdk
在gpio.c文件中可以看到LED管脚的初始化函数。在stm32f1xx_hal_gpio.h头文件中可以看到GPIO的操作函数。在main函数中的while循环中添加LED流水灯效果的应用程序。重新编译程序,点击下载到Open103Z-C开发板。如果提示错误,可以点击图标对Option for Target 的Dubug选项进行修改。(图上选的是ST-LINK)点...

相似回答