点亮LED灯应该是每一人学习硬件的第一个实验了吧!从51到32在到ARM,废话少说,下面开始使用STM32点亮LED灯。
GPIO:又叫通用输入输出口,是微控制器必不可少的外设单元,用来和外界进行信号传递,数据交互的接口。
STM32的GPIO根据型号的不同分为A-H组,每一组都称为GPIOx组,每组都有独立的寄存器,因为相对于寄存器,函数版的使用还是比较容易入门的,尤其是有些编程基础的人来讲,但是寄存器是不可以忽视的,学会了基础的函数操作还是要回头去看看具体寄存器是如何运行的,这点很重要,高手和菜鸟的区别吧!
STM32的GPIO还具有十分强大复用功能,这点以后会介绍和使用到。现在就把它的GPIO当成一个可输出高低电平的引脚就可以了。
首先,看一下相关的寄存器,先了解既可。
在看一关于GPIO的所有方法。
其中在第一个实验中用到的函数,也就几个,比如GPIO_Init()用来初始化IO口,GPIO_SetBits(),GPIO_ResetBits(),用来置位和复位IO口的电平。GPIO_WriteBits(),和GPIO_Write()也可以用来改变GPIO的电平,具体的差别就要去看手册是了解了。
#include "stm32f10x.h"
/**
* @brief ³õʼ»¯GPIO£¬Ä¬ÈÏËÙ¶ÈΪGPIO_Speed_50MHz;
*
* @param GPIO·Ö×é
* @param GPIOÒý½Å
* @param GPIOÒý½Åģʽ
* @retval None
*/
void GPIO_init(GPIO_TypeDef * GPIOx,u16 GPIO_Pin,GPIOMode_TypeDef Mode)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=Mode;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOx,&GPIO_InitStruct);
}
int main()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_init(GPIOA,GPIO_Pin_0,GPIO_Mode_Out_PP);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
while(1);
}
以上代码是将GPIOA0引脚设置为低电平。
上一篇:使用STM32GPIO端口点亮LED灯(库函数)
下一篇:STM32——利用STM32CubeMX来点亮GPIO口的led
推荐阅读
史海拾趣
[:D]好消息!GOOGLE给网站评定的PAGERANK是5了,BBS的PAGERANK是4了,大家继续加油啊![Y]https://www.eeworld.com.cn/ has Google PageRank 5 out of 10 [Y]https://bbs.eeworld.com.cn has Google PageRank 4 out of 10 … 查看全部问答∨ |
DSP2407A具有AD转换和串口发送和接收功能程序和原理图 我贡献一份DSP2407A具有AD转换和串口发送和接收功能程序和原理图. DSP2407A具有AD转换和串口发送和接收功能程序和原理图.… 查看全部问答∨ |
一、课程设计题目及要求 题目1 设计逻辑门电路。多个“与非”门一起可以组成其他基本逻辑电路,请用“与非“门设计其他逻辑门电路。 1、“或”门逻辑电路。请选用若干个“与非”们组成“或”门电路。 2、“异或”门逻辑电路。请选用若干个“与 ...… 查看全部问答∨ |
|
请问显示chip enable program error怎么解决?谢谢 用的52实验板,软件是progisp,被同学借去半年没碰了,找了个HEX文件,点击调入FLASH,开电源,然后点自动,之后就显示了chip enable program error 请问这是什么原因呢?难道我新买的5V电源出了问题?谢谢. [ 本帖最后由 zxpla 于 2010-1-15 13:4 ...… 查看全部问答∨ |
FPGA使用的是Altera公司的EP2C8Q208C,外部时钟接在clk3管脚上,频率为27MHZ,很稳定。我使用QuartusII自带ALTPLL进行倍频,希望能够得到2倍频和4倍频。可是运行后发现输出的频率非常不稳定,locked输出也不稳定,不是仿真中看到的一直处于高电平的 ...… 查看全部问答∨ |
本人买了anydata DTGS-800模块,想做一个拔号上公网,而后与远端服务器传输数据。。不知哪位兄第开发过此模块,AT命令拔号传输的流程如何的,用哪些AT命令? 分不够再加,或样例发邮箱:baizi888@163.com 求anydata AT命令上公网数据传输样例… 查看全部问答∨ |