目前共有2篇帖子。 字体大小:较小 - 100% (默认)▼  内容转换:不转换▼
 
点击 回复
478 1
【STM32入门级程序2】编写LED二进制加法程序,不使用库函数
一派护法 十九级
1楼 发表于:2016-4-23 16:37
【程序】
#include <stm32f10x.h>

#define _BV(n) (1 << (n))

uint8_t n = 0;

void delay()
{
    int i, j;
    for (i = 0; i < 1000; i++)
        for (j = 0; j < 1000; j++);
}

void init()
{
    int i;
    RCC->APB2ENR |= _BV(3); // 打开GPIOB的时钟
    
    // 把PB8~15都设置为输出模式
    for (i = 0; i < 8; i++)
    {
        GPIOB->CRH &= ~_BV(4 * i + 1);
        GPIOB->CRH |= _BV(4 * i);
    }
    
    GPIOB->ODR = 0x00; // 开始时关闭所有LED灯
}

int main()
{
    init();
    
    while (1)
    {
        delay();
        GPIOB->ODR = n << 8;
        n++;
    }
}

void SystemInit()
{
}

一派护法 十九级
2楼 发表于:2016-4-23 16:39
【知识点】
通过对寄存器GPIOB->ODR赋值,可以一次性设置PB口中所有的I/O口的输出状态。

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:478 回复数:1
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-4-23 16:39
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。