[其它应用] 串口通信程序

[复制链接]
 楼主| tian111 发表于 2019-9-13 13:15 | 显示全部楼层 |阅读模式
我根据例程,改了个十分简单的串口通信程序,该方法我通过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 发表于 2019-9-13 13:17 | 显示全部楼层
用的是Tx1和Rx1,所以只能使用EUART1
 楼主| tian111 发表于 2019-9-13 13:21 | 显示全部楼层
哦,这样啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部