- #include "stm8s_conf.h"
- u8 RX_Words;
- vu8 flag;
- void UART3_INIT(void)
- {
- UART3_DeInit();//复位串口3的寄存器值
- UART3_Init((u32)9600, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO,UART3_MODE_TXRX_ENABLE);//波特率 9600 , 8位数据位 , 1位停止位 , 无奇偶效验 , 发送接收使能
- 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;/*设置时钟为内部16M高速时钟*/
- //ADC_INIT();
- UART3_INIT();
- while(1)
- {
- UART3_Demo();
- }
- }
复制代码 进不去接收中断函数和发送数据在PC端串口调试工具上接收不到,这两个问题,有能人帮我分析下原因吗.
|