donatello1996 发表于 2018-11-7 23:09

【新驱动力科技MM32F031C6开发板评测】单线驱动&I2C器件&SPI器件&独立按键控制继电器

<div class='showpostmsg'>       要学习一款单片机,学会驱动常用的串行总线接口如I2C、SPI、异步单串行总线等是非常有必要的,因为绝大部分的传感器外设接口都是这三种外加UART串口,而串口已经在上一帖中调通了,那么这帖就把单总线、I2C、SPI合到一起,加上一个按键做控制,完成一个简单的小项目,评测MM32开发板的外设性能。
      I2C方面,官方给出的例程是使用硬件I2C接口驱动EEPROM,我个人尝试跑了一下这个例程,出现了一些BUG,EEPROM写入之后读取的数据不正确,暂不知道是什么原因,因此我选择DS3231日历芯片,这个芯片对I2C总线的确认、电平和推挽要求不严格,不加确认也可以成功读取数据,并且我使用的是软件模拟I2C总线的方法,这个方法在大多数没有硬件I2C接口的单片机中用得非常多,方便移植,因为I2C在通信过程中需要较长时间的延时等待,属于低速串行通信总线,加了DMA和中断并不会显著提高实时性。这里是DS3231:

       SPI总线外接一个带主控的液晶显示屏,SPI总线的作用是单片机给主控发送指令和数据,控制主控进行刷屏或显示特定数据,虽然没有直接控制液晶硬件,但是大尺寸液晶的主控一般是用FPGA直接给液晶刷屏的(我手头上这个也是FPGA主控的液晶屏),FPGA器件控制外设的速度非常高,远比单片机高得多,因此这种液晶屏主要的速度瓶颈不是FPGA控制液晶刷屏的速度,而是单片机传指令和数据给FPGA的速度,选用SPI这种无确认高速串行总线是非常合适的。这里是液晶屏的接口图:

       单总线接口则选用非常常用的DHT11温湿度传感器,通信和相应速度慢,可以同时输出数字温度和湿度。这是DHT11的接口图:

    最后就是独立按键和继电器了,新驱动力MM32开发板板载了一个PA0 WAKEUP按键,但是出厂的时候这个按键并没有连上PA0引脚,需要用户自行焊接P5排针跳帽并选择外部上拉或下拉。至于继电器,就选用非常常用的5V光耦隔离继电器,可以用MM32输出的TTL数字电平来闭合或断开继电器。接口图:

    整个小项目的流程就是MM32单片机采集温度、湿度,读取日期、时间,并通过独立按键控制继电器开合,按一下闭合,按一下断开,继电器另外一端连接LED照明灯,继电器开合即控制LED照明灯开关。

上传工程文件:

此内容由EEWORLD论坛网友donatello1996原创,如需转载或用于商业用途需征得作者同意并注明出处

</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【新驱动力科技MM32F031C6开发板评测】单线驱动&I2C器件&SPI器件&独立按键控制继电器