物联网之ARM体系结构及接口技术七(波形控制)

波形控制

设备间 通讯实现 

串行通讯

单线             

双线  uart    (全双工 异步)

双线  i2c     (半双工  同步)

三线  spi     (全双工  同步)

并行通讯

        多根数据线 地址线,如内存

串口 UART 协议

uart 串口波形

发送 0xFF 0X00 0X04 0X08数据

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

波形实现方法:

  1.   CPU 已实现,仅需设置寄存器

  2.   GPIO管脚模拟波形

I2C 设备

• 双线  i2c   (半双工  同步)

• 支持一主机对多从机

• 可主从切换

 双线  i2c   (半双工  同步)

ID0x3cI2C 设备写数据 0x2e 0x2e ...

1.由主机发起,在SCL为高电平时,SDA由高到低切   变,形成开始信号;

2.接着是7位地址和一位读写标志,这里7位地址为0111100,即0x3c,正是我们代码中设置的地址ID;最后一位为0表示写操作;

3.接着在下一个时钟,主机以高电平状态释放SDA,这时从机响应,将SDA拉低了;

4.接着是两个8位数据00101110与响应,即0x2E

5.还有其它数据和最后的停止位,图中被截掉了

PWM 蜂鸣器 

PWM(Pulse Width Modulation) :

    脉冲宽度调制  。常见应用有:电机控制,DAC输出等

占空比:

    就是输出的PWM中,高电平保持的时间 与该PWM的时钟周期的时间之比 

WDT 看门狗 

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位

PWM 控制框图

PWM 控制程序

 void PWM_init(void)
{
	GPD0.CON = (GPD0.CON & ~(0xf))    | 0x2;    // GPD0_0 : TOUT_0
	PWM.TCFG0 = (PWM.TCFG0 & ~(0xFF)) |0x63; //Prescaler 0 value for timer 0; 99 + 1 = 100
	PWM.TCFG1 = (PWM.TCFG1 & ~(0xF))  | 0x3;  // 1/8 input for PWM timer 0
		
	PWM.TCNTB0 = 200;   //设置脉冲周期数 200    TOUT PWM输出频率 = TLK/周期数
	PWM.TCMPB0 = 100;   //设置占空比   TCMPB0/TCNTB0 =100/200=1/2  
		
	/* auto-reload, Inverter Off, manual update */
	PWM.TCON = (PWM.TCON & ~(0XF)) | 0XA;
	/* auto-reload, Inverter Off, manual update off, start Timer0*/
	PWM.TCON = (PWM.TCON & ~(0xF)) | 0X9;	
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值