注册 登录
查看: 288|回复: 2

[其他] 加串口发送后,程序除了一些问题

[复制链接]
发表于 2014-3-13 18:55:59 | 显示全部楼层 |阅读模式
会出现卡死现象,
单步调试后发现,程序会卡死在
  1. void uart_putchar (UARTn uratn, char ch)
  2. {
  3.     //等待发送缓冲区空
  4.     while(!(UART_S1_REG(UARTx[uratn]) & UART_S1_TDRE_MASK));
  5.     //发送数据
  6.     UART_D_REG(UARTx[uratn]) = (u8)ch;
  7. }
里的while(!(UART_S1_REG(UARTx[uratn]) & UART_S1_TDRE_MASK));这一句,所以想问下这个while判断里的语句是什么意思

回复

使用道具 举报

发表于 2014-3-13 18:57:31 | 显示全部楼层
读取串口的寄存器,看看发送寄存器是不是已经空了,从而判断是否发送完成
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-13 19:29:20 | 显示全部楼层
许亮 发表于 2014-3-13 18:57
读取串口的寄存器,看看发送寄存器是不是已经空了,从而判断是否发送完成

单步执行的时候是不发送数据么,所以才会卡在这里
回复 支持 反对

使用道具 举报

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

本版积分规则

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