目前共有14篇帖子。
【入门】STM32F103C8——新建模板工程
11樓 巨大八爪鱼 2016-5-13 21:25
【测试程序】
#include "stm32f10x.h"

// 延时函数
void delay()
{
    uint32_t i;
    for (i = 0; i < 4000000; i++);
}

int main(void)
{
    GPIO_InitTypeDef init;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 开启PB口的时钟

    // 初始化PB8和PB9
    init.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
    init.GPIO_Speed = GPIO_Speed_50MHz;
    init.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &init);

    // 循环点亮PB8、PB9
    while (1)
    {
        GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_RESET);
        GPIO_WriteBit(GPIOB, GPIO_Pin_9, Bit_SET);
        delay();

        GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_SET);
        GPIO_WriteBit(GPIOB, GPIO_Pin_9, Bit_RESET);
        delay();
    }
}
12樓 巨大八爪鱼 2016-5-13 21:35
STM32F10x Standard Peripherals Library 参考手册网页版:
http://stm32.kosyak.info/doc/index.html
13樓 巨大八爪鱼 2016-5-13 22:07
【测试程序2:共阴数码管显示12345678】
#include "stm32f10x.h"

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

uint8_t segdisp[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 共阳数码管段码表,取反后就是共阴的段码
int nDigit = 0;

// 延时函数
void delay()
{
    uint32_t i;
    for (i = 0; i < 20000; i++);
}

int main(void)
{
    GPIO_InitTypeDef init;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

    // 初始化PA和PB
    init.GPIO_Pin = GPIO_Pin_All;
    init.GPIO_Speed = GPIO_Speed_50MHz;
    init.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &init);
    GPIO_Init(GPIOB, &init);

    while (1)
    {
        GPIO_Write(GPIOA, ~_BV(nDigit));
        GPIO_Write(GPIOB, ~segdisp[nDigit + 1] << 8);

        delay();
        nDigit++;
        if (nDigit > 7)
            nDigit = 0;
    }
}
14樓 巨大八爪鱼 2016-5-13 22:16
【测试程序3:二进制加法】
#include "stm32f10x.h"

uint8_t uState = 0;

void delay()
{
    uint32_t i;
    for (i = 0; i < 2000000; i++);
}

int main(void)
{
    GPIO_InitTypeDef init;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    init.GPIO_Pin = GPIO_Pin_All;
    init.GPIO_Speed = GPIO_Speed_50MHz;
    init.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &init);

    while (1)
    {
        GPIO_Write(GPIOB, uState << 8);

        delay();
        uState++;
    }
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。