1回答

0收藏

野火ISO STM32开发板学习记四

STMCU STMCU 2615 人阅读 | 1 人回复 | 2014-03-10

    结构体,枚举的概念,库里边的种变量是怎么和单片机对应起来的,用法stm32库的结构是怎么样的.野火哥的” 零死角玩转stm32”详细得不能再详细了.完全可以将野火哥的资料当做是经典的学习教材嘛.因为连运算符什么的都讲的清楚的很.

    最简单的流水灯的大体流程就是:初始化时钟,初始化用到的引脚,打开一个引脚,等一会儿,再关闭一个引脚.如此反复.

int main(void)
{        
        /* LED 端口初始化 */
        LED_GPIO_Config();         

        /* 方法2,使用固件库控制IO */
        while (1)
        {
                LED1( ON );                          // 亮
                Delay(0x0FFFFF);
                LED1( OFF );                  // 灭

                LED2( ON );                          // 亮
                Delay(0x0FFFFF);
                LED2( OFF );                  // 灭

                LED3( ON );                          // 亮
                Delay(0x0FFFFF);
                LED3( OFF );                  // 灭           
        }

}
void LED_GPIO_Config(void)
{               
                /*定义一个GPIO_InitTypeDef类型的结构体*/
                GPIO_InitTypeDef GPIO_InitStructure;

                /*开启GPIOB和GPIOF的外设时钟*/
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE);

                /*选择要控制的GPIOB引脚*/                                                                                                                           
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;        

                /*设置引脚模式为通用推挽输出*/
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

                /*设置引脚速率为50MHz */   
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

                /*调用库函数,初始化GPIOB0*/
                GPIO_Init(GPIOB, &GPIO_InitStructure);        
               
                /*选择要控制的GPIOF引脚*/                                                                                                                           
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

                /*调用库函数,初始化GPIOF7*/
                GPIO_Init(GPIOF, &GPIO_InitStructure);
               
                /*选择要控制的GPIOF引脚*/                                                                                                                           
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

                /*调用库函数,初始化GPIOF7*/
                GPIO_Init(GPIOF, &GPIO_InitStructure);                          

                /* 关闭所有led灯        */
                GPIO_SetBits(GPIOB, GPIO_Pin_0);
               
                /* 关闭所有led灯        */
                GPIO_SetBits(GPIOF, GPIO_Pin_7|GPIO_Pin_8);         
}
    火哥的代码注释已经详细的不能再详细了.大家还不购入一块尝尝鲜?

代码简单是简单,可总有要看的
GPIO_InitStructure.GPIO_Mode:有好几个值吧,你的一个一个的看看是什么意思吧.
PIO_InitStructure.GPIO_Speed:有好几个值吧,你的看一下大体有个印象吧.
GPIO_InitStructure.GPIO_Pin:有七个值,的看看人家是怎么定义.以后自己也好照样弄是吧.
GPIO_Init(GPIOF, &GPIO_InitStructure);这个函数的参数是个地址,参数为地址时,调用方和被调用方各自是怎样用的呢
....................
看啊看,一点一点的看...............
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

pigeon0411_3016650

发表于 2014-3-11 11:36:20 | 只看该作者

非常好的入门教程。学习了。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条