首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM体系结构及接口技术,ARM波形控制,PWM配置

ARM体系结构及接口技术,ARM波形控制,PWM配置

1,串口设备

    1.1, UART 协议

在这里插入图片描述

    1.2,uart 串口波形

发送 0xFF 0X00 0X04 0X08数据
串行通信参数设置:BAUD:115200,8位数据,1个停止位,无奇偶校验,发送顺序为低位先发送。

在这里插入图片描述

    波形实现方法:

        CPU 已实现,仅需设置寄存器
        GPIO管脚模拟波形

    1.3,例

//发送0x04 数据
void uart_tx(void)
{
    GPA1CON = GPA1CON&~(0xf<<4)|(0x01<<4);  //设置GPA1_1 GPIO输出模式
   
    //开始位
    GPA1DAT = GPA1DAT&~0x02 ;  //设置GPA1_1 低电平
    delay10ms();  
    //传数据 0x04   0000 0100
    delay10ms();  //0
    delay10ms();  //0     
  GPA1DAT = GPA1DAT|0x02 ; //1
  delay10ms();   
    GPA1DAT = GPA1DAT&~0x02 ;  //设置GPA1_1 低电平
    delay10ms();      //0
    delay10ms();      //0   
    delay10ms();      //0   
    delay10ms();      //0
    //停止位
  GPA1DAT = GPA1DAT|0x02 ; //1
     delay10ms();           
}


void uart_rx(void)
{
      unsigned char output=0;
        GPA1CON = GPA1CON&~(0xf);  //设置GPA1_1 GPIO输入模式
    //检测开始位
    while(1)
    {
         if(GPA1DAT&0x01==0)
             break;
      delay10ms();
    }
    //接收数据
    if(GPA1DAT&0x01==0)  //bit0
              output=0;
    else
           output=1;     
    if(GPA1DAT&0x01==0)  //bit1         
               output=output&~(0x01<<1);              
     else                              
            output=output|(0x01<<1);      

    if(GPA1DAT&0x01==0)  //bit2        
               output=output&~(0x01<<2);  
     else                                
            output=output|(0x01<<2);     
            ....
                 
   
}
返回列表