首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MicroC读取8051虚拟串口

用MicroC读取8051虚拟串口
EN

Stack Overflow用户
提问于 2011-05-28 12:04:04
回答 1查看 763关注 0票数 0

我有问题,请帮帮我。关于项目作业,microC需要从虚拟串口读取ı,并将这些信息发送给AT89C52微控制器。这是我的源代码:

代码语言:javascript
复制
int uart_rd;
void main() {

    P1=0X00;
    UART1_Init(9600);
    delay_ms(100);

    while(1)
    {    
      if(UART1_Data_Ready()){

         uart_rd=UART1_read();

         if(uart_rd=='1')
         {P1=0X01; delay_ms(1500); P1=0X00; }

         if(uart_rd=='2')
         {P1=0X02; delay_ms(1500); P1=0X00; }
      }
   }
}

但我不能从港口得到信息。mistake.Please在哪里帮我..。

EN

回答 1

Stack Overflow用户

发布于 2011-05-31 19:05:58

您将UART接收变量(uart_rd)定义为int,这是一个2字节变量。我希望UART1_read()返回一个字节(char)。

我不熟悉您的特定设置或调试/故障排除选项,但您可以尝试编写一些代码来帮助调试您的问题。下面的示例可能很有用。它确实假定LED连接到端口1和端口2,因此可能需要进行一些调整。

代码语言:javascript
复制
char uart_rd;

void main() 
{
    UART1_Init(9600);  // Initialize UART at 9600 bps
    delay_ms(100);     // Wait for UART to stabilize

    while(1)
    {    
        if(UART1_Data_Ready())
        {
            P2 = 0xFF;               // Turn ON PORT2 LEDs upon data ready
            uart_rd = UART1_read();  // Receive data
            P1 = uart_rd;            // Display data on port 1 LEDs
            UART1_write(uart_rd);    // Transmit same data back
            delay_ms(1500);          // Brief delay
            P1 = 0x00;               // Turn OFF port 1 LEDs
            P2 = 0x00;               // Turn OFF port 2 LEDs
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6161525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档