哈哈-341063 发表于 2012-3-4 21:41:07

为什么串口不能打

我用的是神州三号,不知道为什么不能打印出来
程序如下:
#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");
}
}
 

发表于 2012-3-5 10:21:10

RE:为什么串口不能打

你连接的是哪个串口?串口线是否交叉?

哈哈-341063 发表于 2012-3-9 00:02:22

RE:为什么串口不能打

现在   看懂了,可能没配置得好
页: [1]
查看完整版本: 为什么串口不能打