请教一下关于usart.c的移植问题,谢谢。

2019-10-11 16:30发布

请教一下关于usart.c的移植问题,谢谢。
感谢原子哥的开源,想尝试把F1的usart.c移植到F0系列的CPU上使用,但是发现如下报错,是因为F0系列的CPU没有定义SR和DR吗?那么可以自己定义并添加吗?谢谢。


//重定义fputc函数
int fputc(int ch, FILE *f)
{      
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;           
        return ch;        
}
#endif



QQ图片20170313155256.png


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
Alvanbai
2019-10-12 07:22
int fputc(int ch, FILE *f)
{      
        while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕   
    USART1->TDR = (u8) ch;          
        return ch;       
}

仔细看了这个程序,感觉是判断发送状态的,按照注释看是不是SR应该对应ISR,但是F0的ISR是定义成U32了呢,F1的SR是u16。DR的话应该是数据寄存器,可是F0里面分成了发送数据寄存器TDR和接受寄存器TDR,应该怎么对应呢

一周热门 更多>