OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5324|回复: 1

最简单的设置控制stm32的PB口实现流水灯

[复制链接]

11

主题

94

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2012-9-25
在线时间
0 小时
发表于 2013-4-24 19:50:06 | 显示全部楼层 |阅读模式
TEST.C 的内容:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
 
int main(void)
{  
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);     //延时初始化
LED_Init();   //初始化与LED连接的硬件接口
while(1)
{
GPIOB->ODR=0xAAFF;
delay_ms(300);  
GPIOB->ODR=0x55FF;
delay_ms(300);
}  
}
这里只用了PB端口的高八位,所以在给ODR寄存器赋值的时候可以不考虑低八位,即这里的0xAA- -后两位可以是任意值。但是如果有其他外设的时候就必须考虑后两位的值对这些外设的影响。

下面是LED.C 的内容:
#include <stm32f10x_lib.h>   
#include "led.h" 

//初始化PB8为输出口.并使能他的时钟    
//LED IO初始化
void LED_Init(void)
{    
RCC->APB2ENR|=1<<3;    //使能PORTB时钟
   
GPIOB->CRL=0X33333333;//设置PB低八位为推挽输出
GPIOB->CRH=0X33333333;//设置PB高八位为推挽输出
GPIOB->BRR=0X00000000;//清楚PB端口数据
}
具体步骤:打开ALIENTEK MINISTM32开发板寄存器版本的第一个例程跑马灯:然后将里面的 test.c 和 led.c 更改为上述配置即可。
程序经过测试,有错误或者多余的设置还请亲们指正!




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-24 21:38:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 22:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表