找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4892|回复: 5
收起左侧

STM32F407的计步器模块mma9555L驱动源码

[复制链接]
ID:207289 发表于 2017-6-3 08:15 | 显示全部楼层 |阅读模式
之前调试的一个计步器模块,可以实现挺多功能的,不只有计步功能,不过因为只用到了计步功能就只写了计步功能的驱动。
0.png
实验器材:
    探索者STM32F4开发板
   
实验目的:
    学习STM32模拟IIC的使用,驱动24C02实现EEPROM数据读写.
   
硬件资源:
    1,DS0(连接在PF9)
    2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动,FSMC_NE4接LCD片选/A6接RS)
    4,按键KEY0(PE4)/KEY1(PE3)
    5,24C02(IIC连接在PB8/PB9上面)

实验现象:
    本实验通过KEY1按键来控制24C02的写入,通过另外一个按键KEY0来控制24C02的读取。并在LCD模块上面显示
    相关信息。同时,我们可以通过USMART控制在24C02的任意地址写入和读取数据。
      
注意事项:
    1,4.3寸和7寸屏需要比较大电流,USB供电可能不足,请用外部电源适配器(推荐外接12V 1A电源).
    2,本例程在LCD_Init函数里面(在ILI93xx.c),用到了printf,如果不初始化串口1,将导致液晶无法显示!!

STM32F407单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "mma9555l.h"
  7. #include "key.h"
  8. int main(void)
  9. {
  10.         unsigned char Ture_Buf[20];  
  11.         int StepCount;
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  13.         delay_init(168);    //初始化延时函数
  14.         uart_init(115200);        //初始化串口波特率为115200
  15.        
  16.        
  17.         LED_Init();                                        //初始化LED
  18.         LCD_Init();                                        //LCD初始化  
  19.         IIC_Init();                //IIC初始化
  20.         KEY_Init();

  21.         pedometer_init();
  22.         pedometer_afe_config_read();
  23.         POINT_COLOR=RED;
  24.         while(1)
  25.         {       
  26.                 IIC_ReadRegister(MMA9555L_Sub_Addr,Ture_Buf,2);
  27.                 LCD_ShowString(60,50,200,16,16,"Buf[1]=");
  28.                 LCD_ShowNum(130,50,Ture_Buf[1],5,12);
  29.                 if(Ture_Buf[1]==0x80)
  30.        {
  31.          IIC_ReadRegister(MMA9555L_Sub_Addr,Ture_Buf, 5); // 读5字节数据
  32.          break;
  33.        }
  34.         }
  35.         delay_ms(1);
  36.         while(1)
  37.         {
  38.                 StepCount=pedometer_main();
  39.                 LCD_ShowString(60,110,200,16,16,"BS");
  40.                 LCD_ShowNum(130,110,StepCount,5,12);
  41.                 delay_ms(1);
  42.                 if(KEY_Scan(1)==3)
  43.                 {
  44.                         pedometer_reset();
  45.                 }
  46.                 if(KEY_Scan(1)==1)
  47.                 {
  48.                         pedometer_disable();
  49. ……………………

  50. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
MMA9555L.zip (5.06 MB, 下载次数: 101)
回复

使用道具 举报

ID:1 发表于 2017-6-3 20:29 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:526956 发表于 2019-5-4 14:38 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:828432 发表于 2020-10-11 19:13 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:893860 发表于 2021-4-9 11:30 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:723613 发表于 2021-7-25 15:39 | 显示全部楼层

好资料,51黑有你更精彩!!!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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