找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1060|回复: 4
打印 上一主题 下一主题
收起左侧

请教C8051F020单片机串口通信9bit数据通信问题

[复制链接]
跳转到指定楼层
楼主
ID:939553 发表于 2023-8-15 07:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口设置为:

void UART_Init()
{
    SCON0     = 0xD0;        //方式3:9位UART,可变波特率。SM20 = 0,停止位的逻辑电平被忽略
    SCON1     = 0x50;
    PCON      = 0X00;        //SSTAT0 = 0:读/写SM20-SM00时访问UART0方式设置位SM20-SM00。
}

现象是:
1.当电脑串口软件设置为9bit数据发送时,可以正常通信。
2.当电脑串口软件设置8bit数据发送时,不能正常通信。
电脑串口软件再设置为9bit数据时,也不能通信了,需要断电才能恢复。


串口中断程序:
void UART0_ISR(void) interrupt UART0_VECTOR//UART0
{
        if(RI0)//接收中断
        {
                RI0=0;
                uart0_info.uart0_rx_timer = UART0_RX_TIMEOUT;//启动UART0接收时间判断

                uart0_info.uart0_rx_data[uart0_info.uart0_rx_count++] = SBUF0;
                uart0_info.uart0_rx_count %= UART0_BUFF_SIZE;
        }
        if(TI0)//发送中断
        {
                TI0=0;
                uart0_tx_busy = 0;
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-8-15 16:46 | 只看该作者
标准串口,不算奇偶校验位,只说数据位,7位或8位数据位是最常见的,9位的闻所未闻。
回复

使用道具 举报

板凳
ID:939553 发表于 2023-8-16 03:42 | 只看该作者
结题:是在串口分析程序,引用了不恰当的程序造成死机,更换后恢复。
回复

使用道具 举报

地板
ID:123289 发表于 2023-8-16 18:06 | 只看该作者
单片机程序对于通讯出错的处理程序,不当,可以出现长时间恢复问题。
正确的做法是:N ms内收不到一个字节就复初。
回复

使用道具 举报

5#
ID:939553 发表于 2023-8-17 23:01 | 只看该作者
yzwzfyz 发表于 2023-8-16 18:06
单片机程序对于通讯出错的处理程序,不当,可以出现长时间恢复问题。
正确的做法是:N ms内收不到一个字节 ...

谢谢,目前是这样超时处理的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表