本帖最后由 立志男儿 于 2015-1-22 22:05 编辑
void main()
{
CLK_SYSCLKSourceSwitchCmd(ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_16);
Uart1_Init();
enableInterrupts(); //开启总中断
printf("11");
while(1)
{
UART1_printf("hello");
delay2(500);
}
void Uart1_Init(void)
{
// CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);
USART_DeInit(USART1); /* 将寄存器的值复位 */
/*
* 将UART1配置为:
* 波特率 = 115200
* 数据位 = 8
* 1位停止位
* 无校验位
* 使能接收和发送
* 使能接收中断
*/
USART_Init(USART1,(u32)115200, USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,(USART_Mode_TypeDef)(USART_Mode_Tx|USART_Mode_Tx));
// USART1->CR2|=(1<<2);
// USART1->CR2|=(1<<3);
// USART1->CR1|=(1<<5);
USART_ITConfig(USART1,(USART_IT_TypeDef)(USART_IT_RXNE|USART_IT_OR),ENABLE);
USART_Cmd(USART1,ENABLE);
}[code]
INTERRUPT_HANDLER(USART1_RX_TIM5_CC_IRQHandler, 28)
{
u8 Res;
/* 读取接收到的数据,当读完数据后自动取消RXNE的中断标志位 */
Res =USART_ReceiveData8(USART1);
/* 将读取的字符发送到PC */
USART_SendData8(USART1,Res);
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
}
[/code] |