累了就会(ˇˍˇ) 想~爸爸想妈妈

累了就会(ˇˍˇ) 想~爸爸想妈妈,回忆温馨的过往
void _sys_exit(int x) { x = x; } //֘¶¨ҥfputcº¯ʽ int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//ѭ»··¢ˍ,ֱµ½·¢ˍͪ±Ϡ USART1->DR = (u8) ch; return ch; } #endif #if EN_USART1_RX //ȧ¹ûʹĜÁ˽ӊՍ u8 USART_RX_BUF[USART_REC_LEN]; //½ӊջº³嬗USART_REC_LEN¸öז½ڮ u16 USART_RX_STA=0; //½ӊ՗´̬±꼇 /******************************************************************** * º¯ʽû£ºvoid USART1_IRQHandler(void) * ¹¦Ĝèʶ: ´®¿ڱ֐¶Ϸþα³̐򍊪 µ÷Ӄ: * ±»³Ǝª: * ʤȫ²Ίý£º * ·µ»غ * ׷՟: * Ƥ˻: * ±дȕƚ: 2013.8.27 * Ӳ¼þÁ¬½Ӻ *********************************************************************/ void USART1_IRQHandler(void) { u8 res; #ifdef OS_CRITICAL_METHOD //ȧ¹ûOS_CRITICAL_METHOD¶¨ҥÁˬ˵÷ʹӃucosIIÁˮ OSIntEnter(); #endif if(USART1->SR&(1<<5)) //½ӊյ½ʽ¾ݍ { res=USART1->DR; if((USART_RX_STA&0x8000)==0) //½ӊՎ´ͪ³ɍ { if(USART_RX_STA&0x4000) //½ӊյ½Á˰x0d { if(res!=0x0a)USART_RX_STA=0;//½ӊմ펳,֘Ђ¿ªʼ else USART_RX_STA|=0x8000; //½ӊՍ곉Áˠ }else //»¹ûʕµ½0X0D { if(res==0x0d)USART_RX_STA|=0x4000; else { USART_RX_BUF[USART_RX_STA&0X3FFF]=res; USART_RX_STA++; if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//½ӊՊý¾ݴ펳,֘Ђ¿ªʼ½ӊՉ } } } } #ifdef OS_CRITICAL_METHOD //ȧ¹ûOS_CRITICAL_METHOD¶¨ҥÁˬ˵÷ʹӃucosIIÁˮ OSIntExit(); #endif } #endif /******************************************************************** * º¯ʽû£º * ¹¦Ĝèʶ:³õʼ»¯IO ´®¿ڱ * µ÷Ӄ: * ±»³Ǝª: * ʤȫ²Ίý£º1¡¢pclk2:PCLK2ʱ֓ƵŠ(Mhz) 2¡¢bound:²¨̘Š * ·µ»غ * ׷՟: * Ƥ˻: * ±дȕƚ: 2013.8.27 * Ӳ¼þÁ¬½Ӻ *********************************************************************/ void uart_init(u32 pclk2,u32 bound) // 72,9600 { float temp; u16 mantissa; //´淅²¨̘Šջʽ²¿·֍ u16 fraction; //´淅²¨̘ŠСʽ²¿·֠ RCC->APB2ENR|=1<<2; //ʹĜPORTA¿ڊ±֓ RCC->APB2ENR|=1<<14; //ʹĜ´®¿ڱʱ֓ GPIOA->CRH&=0XFFFFF00F; //IOɨփ£¬ǥÁ㐁9º͐A10 GPIOA->CRH|=0X000004b0; //IOɨփ£¬PA10¸¡¿Պ䈫£¬PA9¸´Ӄ͆ͬʤ³ö RCC->APB2RSTR|=1<<14; //¸´λ´®¿ڱ RCC->APB2RSTR&=~(1<<14);//ֹͣ¸´λ //²¨̘Šɨփ temp=(float)(pclk2*1000000)/(bound*16); //µõ½²¨̘Š mantissa=temp; //µõ½ջʽ²¿·֍ fraction=(temp-mantissa)*16; //µõ½Сʽ²¿·։ mantissa<<=4; mantissa+=fraction; USART1->BRR=mantissa; // ²¨̘Šɨփ USART1->CR1|=0X200C; //1λֹͣ,ΞУѩλ. } char Uart_Getch(void) { while(!(USART1->SR & (1<<5))); //Receive data ready return USART1->DR; } void Uart_SendByte(int data) { if(data=='\n') { while(!(USART1->SR & (1<<6))); //µȴý£¬ֱµ½·¢ˍ»º³凸Ϊ¿Ս USART1->DR='\r'; //·¢ˍ»سµ·û } while(!(USART1->SR & (0x01<<6))); //Wait until THR is empty. USART1->DR=data; //·¢ˍז·û } void Uart_SendString(char *pt) { while(*pt) Uart_SendByte(*pt++); } void Uart_Printf(char *fmt,...) { __va_list ap; char string[256]; va_start(ap,fmt); vsprintf(string,fmt,ap); Uart_SendString(string); va_end(ap); } 每行代码的意思
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值