社区导航

 

搜索
查看: 550|回复: 34

[环境传感器] lps33hw的stm32f103工程

  [复制链接]

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-9-3 17:19 | 显示全部楼层 |阅读模式

@CCss131 写的工程,stm32f103读取lps33hw数据通过串口打印

使用STM32CubeMX创建,基于NUCLEO-F103RB

我手里没有这个板子,@CCss131 你试一下,有什么问题回贴反馈,我给你修改

 

stm32f103 lps33hw.rar (8.13 MB, 下载次数: 6)

虾扯蛋


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-3 17:32 | 显示全部楼层
好的谢谢谢谢


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-3 18:06 | 显示全部楼层
请问一下怎样改成标准库来驱动

点评

stm32f103的标准库吗  详情 回复 发表于 2019-9-3 19:17


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-3 19:17 来自手机 | 显示全部楼层
CCss131 发表于 2019-9-3 18:06 请问一下怎样改成标准库来驱动
stm32f103的标准库吗


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-4 08:41 | 显示全部楼层
littleshrimp 发表于 2019-9-3 19:17 stm32f103的标准库吗

对的对的,STM32CubeMX软件我还没用过,我用的板子是STM32的C8T6,可以像他这样改吗http://bbs.eeworld.com.cn/thread-1064955-1-1.html

点评

和这个网址里的代码区别不大,只要在你的工程里把i2c和uart调通,然后把lps33hw_STdC文件夹里的文件放到工程里 read_data_simple.c文件里的tx_com,platform_read,platform_write内的对应函数替换成对应的uart和  详情 回复 发表于 2019-9-4 15:14


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-4 15:14 | 显示全部楼层
CCss131 发表于 2019-9-4 08:41 对的对的,STM32CubeMX软件我还没用过,我用的板子是STM32的C8T6,可以像他这样改吗http://bbs.eeworld.c ...

和这个网址里的代码区别不大,只要在你的工程里把i2c和uart调通,然后把lps33hw_STdC文件夹里的文件放到工程里

read_data_simple.c文件里的tx_com,platform_read,platform_write内的对应函数替换成对应的uart和i2c收发函数即可

虾扯蛋


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-5 15:05 | 显示全部楼层

版主你好,我用SPI通信,MISO没有返回值,在platform_write中对应

u8 SPIx_Send_Byte(SPI_TypeDef* SPIx, u8 dat)
{
        u8 retry = 0;                                                  
        while(SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET)    
        {
                retry++;
                if(retry > 200)
                        return 0;
        }        
        SPI_I2S_SendData(SPIx, data);                                     
        retry = 0;
        while(SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET)   
        {
                retry++;
                if(retry > 200)
                        return 0;
        }        
        return SPI_I2S_ReceiveData(SPIx);     

里面死循环了才出来,应该是什么问题

点评

你用示波器看一下CS,SCLK,MOSI的时序是否正常 如果正常读一下who am i看一下有没有返回数据  详情 回复 发表于 2019-9-5 15:46


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-5 15:46 | 显示全部楼层
CCss131 发表于 2019-9-5 15:05 版主你好,我用SPI通信,MISO没有返回值,在platform_write中对应 u8 SPIx_Send_Byte(SPI_TypeDef* SPIx ...

你用示波器看一下CS,SCLK,MOSI的时序是否正常

如果正常读一下who am i看一下有没有返回数据

虾扯蛋


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-5 15:58 | 显示全部楼层

波形是这样的,应该怎么去读WHO AM I的地址啊?

L0}8YN_AD`FXTC0_@P_~EC7.png

点评

看你的时序应该是在写CTRL_REG2寄存器 读who am i执行platform_read函数,寄存器地址是0x0f  详情 回复 发表于 2019-9-5 16:14


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-5 16:14 | 显示全部楼层
CCss131 发表于 2019-9-5 15:58 波形是这样的,应该怎么去读WHO AM I的地址啊?

看你的时序应该是在写CTRL_REG2寄存器

读who am i执行platform_read函数,寄存器地址是0x0f

虾扯蛋


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-5 18:26 | 显示全部楼层

读不出来,没有读到WHO AN I里面的 10110001 是不是我配置的函数不正确?

点评

再把读取who am i 的波形拿出来看下  详情 回复 发表于 2019-9-5 18:35


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-5 18:35 来自手机 | 显示全部楼层
CCss131 发表于 2019-9-5 18:26 读不出来,没有读到WHO AN I里面的 10110001 是不是我配置的函数不正确?
再把读取who am i 的波形拿出来看下


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-6 09:37 | 显示全部楼层

F8YK9_8HQ6Y14QG)1X`_71B.png 我是直接用 platform_read函数在while(1)里面读,是不是用模拟I2C会容易一点

 

 

点评

都差不多,i2c能方便点,2根线 看你的时序mosi和miso是标记错了吗? 没有控制CS信号 发送的数据也不像是0x0f  详情 回复 发表于 2019-9-6 11:39


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-6 11:39 | 显示全部楼层
CCss131 发表于 2019-9-6 09:37 我是直接用 platform_read函数在while(1)里面读,是不是用模拟I2C会容易一点    

都差不多,i2c能方便点,2根线

看你的时序mosi和miso是标记错了吗?

没有控制CS信号

发送的数据也不像是0x0f

虾扯蛋


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-6 16:25 | 显示全部楼层

搞不好,版主有没有用STM32F103驱动的相似例程

点评

你把测试工程 和硬件连接发过来我给你看看  详情 回复 发表于 2019-9-6 16:38


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-6 16:38 来自手机 | 显示全部楼层
CCss131 发表于 2019-9-6 16:25 搞不好,版主有没有用STM32F103驱动的相似例程
你把测试工程 和硬件连接发过来我给你看看


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-6 19:14 | 显示全部楼层

版主帮我看一下

stm32f103 LPS33HW.rar

8.67 MB, 阅读权限: 5, 下载次数: 3

点评

" SPI:用了PB4-PB7引脚,现在改用IIC连接:PB6和PB7 想请教一下lps_reg.c中P1619 tx_com怎么改,然后可以在串口打印数据 还有Mian函数怎样编写可以连续读取读取数据以及打印数据呀? https://wenku.baidu  详情 回复 发表于 2019-9-7 09:26


回复

使用道具 举报

6393

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2019-9-7 09:26 | 显示全部楼层
CCss131 发表于 2019-9-6 19:14 版主帮我看一下

"

SPI:用了PB4-PB7引脚,现在改用IIC连接:PB6和PB7

想请教一下lps_reg.c中P1619 tx_com怎么改,然后可以在串口打印数据

还有Mian函数怎样编写可以连续读取读取数据以及打印数据呀? https://wenku.baidu.com/view/8412fbc0dd88d0d232d46a48.html    F103C8T6引脚 非常希望得到你的指导,感谢!

"

这个是我最初发给你的工程,原来I2C连接的PB89和PB9,现在改成PB6和PB7

你再试试这个工程,如果想通过UART打印,PA2是单片机的TX,PA3是单片机的RX,把这2根线接到对应的串口上即可

stm32f103 lps33hw.rar (8.13 MB, 下载次数: 2)

虾扯蛋


回复

使用道具 举报

868

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-7 13:04 | 显示全部楼层
请问一下怎样改成标准库来驱动


回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-9-9 14:32 | 显示全部楼层

版主你好,请问一下INT_DRDY这个引脚有什么用,要怎么配置它?用ADC采样吗?还有现在用硬件的SPI驱动LPS33HW,程序卡在了这里,应该怎么解决

  whoamI = 0;
  lps33hw_device_id_get(&dev_ctx, &whoamI);

  if ( whoamI != LPS33HW_ID )
        while(1)

点评

INT_DRDY 是数字输出引脚,接单片机的数据输入,一搬产生中断或者数据准备就绪时这个引脚的电平会有变化   SPI卡在那里是因为读到的who am i和器件的不对应,一搬情况下是因为通信错误没有读到数据。  详情 回复 发表于 2019-9-9 15:10


回复

使用道具 举报

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

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-9-21 15:04 , Processed in 0.498344 second(s), 18 queries , Gzip On, MemCache On.

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