初级会员

- 积分
- 151
- 金钱
- 151
- 注册时间
- 2014-10-7
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-11-24 16:27:35
|
显示全部楼层
回复【8楼】管管:
---------------------------------
void RS485_Init(u32 pclk1,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk1*1000000)/(bound*16);//????USARTDIV
mantissa=temp; //??????????·?
fraction=(temp-mantissa)*16; //??????????·?
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<8; //????PORTG???±??
GPIOG->CRH&=0XFFFFFF0F; //IO×????è??
GPIOG->CRH|=0X00000030; //IO×????è??
RCC->APB2ENR|=1<<2; //????PORTA???±??
GPIOA->CRL&=0XFFFF00FF; //IO×????è??
GPIOA->CRL|=0X00008B00; //IO×????è??
RCC->APB1ENR|=1<<17; //?????????±??
RCC->APB1RSTR|=1<<17; //????????2
RCC->APB1RSTR&=~(1<<17);//????????
//?¨?????è??
USART2->BRR=mantissa; // ?¨?????è??
USART2->CR1|=0X200C; //1??????,?????é??.
#ifdef EN_USART2_RX //??????????????
//????????????
USART2->CR1|=1<<8; //PE????????
USART2->CR1|=1<<5; //??????????·???????????
MY_NVIC_Init(3,3,USART2_IRQn,2);//×é2??×?????????
#endif
RS485_TX_EN=0; //??????????????
} |
|