 |
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++; } }
|