中级会员
- 积分
- 209
- 金钱
- 209
- 注册时间
- 2019-7-17
- 在线时间
- 57 小时
|
发表于 2020-6-4 22:12:50
|
显示全部楼层
比较你这代码和我之前基于原子改的代码,一点一点排除终于发现问题了
你用的是uart_setbaudrate(UART1, 115200, 80000000)配置波特率,我那个是用寄存器配置的,换了后中断可以进,主函数也正常了。
没用过MobaXterm或PUTTY这两个应用,但是你可以把中断处理函数改一下不用【\r\n】结束,直接用【\n】为结束符
- u8 Res = 0;
- if((UART1->USR1) & (1 << 9)) /* 是否是RX中断 */
- {
- Res = UART1->URXD;
- if((USART_RX_STA & 0x8000) == 0)
- {
- if(Res == 0x0d)
- {
- USART_RX_STA |= 0x8000;
- }
- else
- {
- USART_RX_BUF[USART_RX_STA & 0X3FFF] = Res;
- USART_RX_STA++;
- if(USART_RX_STA > (USART_REC_LEN - 1))
- {
- USART_RX_STA = 0;
- }
- else
- {
- putc(Res);
- }
- }
- }
- }
复制代码
|
|