来段代码先:
u16 tempqq;
//初始化USRT (9600,8,n,1)
void UARTInit(void)
{
u8 dummy = 0;//初始化串口使用的临时变量
dummy = UART1->SR;
dummy = UART1->DR;
//使用内部高速时钟HSI 16MHz 波特率9600 UART_DIV = 16000000/9600 = 0683H
UART1->BRR2 = 0x03;
UART1->BRR1 = 0x68; /*< Set Baud rate = 9600 @16MHz */
UART1->CR1 = UART1_CR1_RESET_VALUE; /*< Set UART1_CR1 to reset value 0x00 */
UART1->CR2 = 0x0c; /*< Set UART1 T/R enable */
UART1->CR3 = UART1_CR3_RESET_VALUE; /*< Set UART1_CR3 to reset value 0x00 */
UART1->CR4 = UART1_CR4_RESET_VALUE; /*< Set UART1_CR4 to reset value 0x00 */
UART1->CR5 = UART1_CR5_RESET_VALUE; /*< Set UART1_CR5 to reset value 0x00 */
UART1->GTR = UART1_GTR_RESET_VALUE;
UART1->PSCR = UART1_PSCR_RESET_VALUE;
}
void main(void)
{
CLKInit();//时钟初始化
GPIOInit();//端口初始化
UARTInit();//UART1初始化
tempqq = 10000;
while(tempqq--);//<--------------注意这里,这时,编译器那个忙啊.....
enableInterrupts();
while (1)
{
}
在main中,
while(tempqq--);//<--------------注意这里,这时,编译器那个忙啊.....
然而,把这个循环放到UART1初始化代码中或UART1初始化代码前面就可以顺利编译. |