在线时间2 小时
UID341063
ST金币0
蝴蝶豆0
注册时间2012-2-8
新手上路
- 最后登录
- 2018-2-1
|
a0a.1 0b0c
我用的是神州三号,不知道为什么不能打印出来
程序如下:
#include "stm32f10x.h"
#include
#define RCC_GPIO_LED RCC_APB2Periph_GPIOF
#define GPIO_LED GPIOF
#define DS1_PIN GPIO_Pin_6
#define DS2_PIN GPIO_Pin_7
#define DS3_PIN GPIO_Pin_8
#define DS4_PIN GPIO_Pin_9
#define LED_PIN_ALL DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN
#define RCC_GPIO_KEY1 RCC_APB2Periph_GPIOA
#define GPIO_KEY1_PORT GPIOA
#define GPIO_KEY1 GPIO_Pin_0
#define RCC_GPIO_KEY2 RCC_APB2Periph_GPIOC
#define GPIO_KEY2_PORT GPIOC
#define GPIO_KEY2 GPIO_Pin_13
#define RCC_GPIO_KEY3 RCC_APB2Periph_GPIOA
#define GPIO_KEY3_PORT GPIOA
#define GPIO_KEY3 GPIO_Pin_8
#define RCC_GPIO_KEY4 RCC_APB2Periph_GPIOD
#define GPIO_KEY4_PORT GPIOD
#define GPIO_KEY4 GPIO_Pin_3
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
void USART_COM_Config(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
USART_InitStructure.USART_BaudRate=115200;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_Init(USART1,&USART_InitStructure);
}
void GPIO_KEY_Config(void)
{
RCC_APB2PeriphClockCmd(RCC_GPIO_KEY1,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_KEY1;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIO_KEY1_PORT,&GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_GPIO_KEY2,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_KEY2;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIO_KEY2_PORT,&GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_GPIO_KEY3,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_KEY3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIO_KEY3_PORT,&GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_GPIO_KEY4,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_KEY4;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIO_KEY4_PORT,&GPIO_InitStructure);
}
void GPIO_LED_Config(void)
{
RCC_APB2PeriphClockCmd(RCC_GPIO_LED,ENABLE);
GPIO_InitStructure.GPIO_Pin=LED_PIN_ALL;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIO_LED,&GPIO_InitStructure);
GPIO_SetBits(GPIO_LED,LED_PIN_ALL);
}
u8 ReadKeyDown(void)
{
if(!GPIO_ReadInputDataBit(GPIO_KEY1_PORT,GPIO_KEY1))
{return 1; }
if(!GPIO_ReadInputDataBit(GPIO_KEY2_PORT,GPIO_KEY2))
{return 2; }
if(!GPIO_ReadInputDataBit(GPIO_KEY3_PORT,GPIO_KEY3))
{return 3; }
if(!GPIO_ReadInputDataBit(GPIO_KEY4_PORT,GPIO_KEY4))
{return 4; }
else return 0;
}
void Delay(vu32 nCount)
{
for(;nCount!=0;nCount--);
}
void Turn_On_1(void)
{
GPIO_ResetBits(GPIO_LED,DS1_PIN);
}
void Turn_On_2(void)
{
GPIO_ResetBits(GPIO_LED,DS2_PIN);
}
void Turn_On_3(void)
{
GPIO_ResetBits(GPIO_LED,DS3_PIN);
}
void Turn_On_4(void)
{
GPIO_ResetBits(GPIO_LED,DS4_PIN);
}
void Turn_On_ALL(void)
{
GPIO_ResetBits(GPIO_LED,LED_PIN_ALL);
Delay(0x2fffff);
GPIO_SetBits(GPIO_LED,LED_PIN_ALL);
Delay(0x2fffff);
}
void LED_Turn_On(u8 NUM)
{ switch(NUM)
{
case 1: Turn_On_1();break;
case 2: Turn_On_2();break;
case 3: Turn_On_3();break;
case 4: Turn_On_4();break;
default : Turn_On_ALL();
}
}
int main(void)
{
u8 KEYNUM=0;
GPIO_LED_Config();
GPIO_KEY_Config();
USART_COM_Config();
GPIO_SetBits(GPIO_LED,LED_PIN_ALL);
Delay(0x200000);
GPIO_ResetBits(GPIO_LED,LED_PIN_ALL);
Delay(0x200000);
while(1)
{
KEYNUM=ReadKeyDown();
LED_Turn_On(KEYNUM);
printf("\n\r神舟III号 串口1发送实验程序\n");
}
}
|
|