- #include "stm8s_conf.h"
- u8 RX_Words;
- vu8 flag;
- void UART3_INIT(void)
- {
- UART3_DeInit();//復(fù)位串口3的寄存器值
- UART3_Init((u32)9600, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO,UART3_MODE_TXRX_ENABLE);//波特率 9600 , 8位數(shù)據(jù)位 , 1位停止位 , 無奇偶效驗 , 發(fā)送接收使能
- UART3_ITConfig(UART3_IT_RXNE, ENABLE);//使能接收中斷
- UART3_Cmd(ENABLE);//使能串口3
- enableInterrupts();
- }
- void Uart3_Send1Byte(u8 TxData)
- {
- UART3_SendData8(TxData);
- while(UART3_GetFlagStatus(UART3_FLAG_TXE) == RESET);
- }
- @far @interrupt void UART3_RX_IRQHandler(void)
- {
- UART3_ClearITPendingBit(UART3_IT_RXNE);
- RX_Words = UART3_ReceiveData8();
- flag = 1;
- }
- void delay1ms(u16 var)
- {
- u16 i;
- while(var --)
- {
- for(i=0;i<1000;i++);
- }
- }
- void UART3_Demo(void)
- {
- if(flag == 1){
- flag = 0;
- delay1ms(20);
- Uart3_Send1Byte(RX_Words);
- }
- }
- main()
- {
- CLK_DeInit();
- CLK->CKDIVR|= (u8)0x00;/*設(shè)置時鐘為內(nèi)部16M高速時鐘*/
- //ADC_INIT();
- UART3_INIT();
- while(1)
- {
- UART3_Demo();
- }
- }
復(fù)制代碼 進不去接收中斷函數(shù)和發(fā)送數(shù)據(jù)在PC端串口調(diào)試工具上接收不到,這兩個問題,有能人幫我分析下原因嗎.
|