打印
[其它应用]

串口通信程序

[复制链接]
602|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2018-4-10 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我根据例程,改了个十分简单的串口通信程序,该方法我通过proteus仿真,能够实现功能,但是下载到SH88f516中,就出问题了,按理说,即使波特率,和停止位位数这些不正确,通过串口助手仍然能够收到数据才是,虽然数据可能是错的。经过调试发现,有块PCB上是SBUF一直不能够得到值,但是TI会变化;有一块则是SBUF能得到一次赋值,但一直在执行while(TI == 0);即TI一直无法变成1.
使用EUART1,没有问题。这是我串口没有配置好?请各位不吝赐教!
主要的配置程序如下:
T2MOD        =        Bin(00000000);        //设置Timer2用于产生波特率(baudrate generator
T2CON        =        Bin(00110000);
SCON        =        Bin(11010000);
RCAP2L        =        LOBYTE(UART_BAUDRATE);
TL2        =        LOBYTE(UART_BAUDRATE);
RCAP2H        =        HIBYTE(UART_BAUDRATE);
TH2        =        HIBYTE(UART_BAUDRATE);
//////////////////////////////////////////////////////
while(1)
{
SBUF = 10;                 
while(TI == 0);
TI = 0;
}
沙发
songqian17| | 2018-4-10 10:24 | 只看该作者

用的是Tx1和Rx1,所以只能使用EUART1

使用特权

评论回复
板凳
tian111|  楼主 | 2018-4-10 10:27 | 只看该作者
哦,这样啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝