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

littleshrimp   2019-9-3 17:19 楼主

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

使用STM32CubeMX创建,基于NUCLEO-F103RB

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

 

stm32f103 lps33hw.rar (8.13 MB)
(下载次数: 83, 2019-9-3 17:16 上传)

虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (37)

好的谢谢谢谢
点赞  2019-9-3 17:32
请问一下怎样改成标准库来驱动
点赞  2019-9-3 18:06
引用: CCss131 发表于 2019-9-3 18:06
请问一下怎样改成标准库来驱动

stm32f103的标准库吗
点赞  2019-9-3 19:17
引用: littleshrimp 发表于 2019-9-3 19:17 stm32f103的标准库吗

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

点赞  2019-9-4 08:41
引用: 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收发函数即可

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2019-9-4 15:14

版主你好,我用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);     

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

点赞  2019-9-5 15:05
引用: CCss131 发表于 2019-9-5 15:05 版主你好,我用SPI通信,MISO没有返回值,在platform_write中对应 u8 SPIx_Send_Byte(SPI_TypeDef* SPIx ...

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

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

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2019-9-5 15:46

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

  • L0}8YN_AD`FXTC0_@P_~EC7.png
点赞  2019-9-5 15:58
引用: CCss131 发表于 2019-9-5 15:58 波形是这样的,应该怎么去读WHO AM I的地址啊?

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

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

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2019-9-5 16:14

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

点赞  2019-9-5 18:26
引用: CCss131 发表于 2019-9-5 18:26
读不出来,没有读到WHO AN I里面的 10110001 是不是我配置的函数不正确?

再把读取who am i 的波形拿出来看下
点赞  2019-9-5 18:35

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

 

 

点赞  2019-9-6 09:37
引用: CCss131 发表于 2019-9-6 09:37 我是直接用 platform_read函数在while(1)里面读,是不是用模拟I2C会容易一点    

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

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

没有控制CS信号

发送的数据也不像是0x0f

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2019-9-6 11:39

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

点赞  2019-9-6 16:25
引用: CCss131 发表于 2019-9-6 16:25
搞不好,版主有没有用STM32F103驱动的相似例程

你把测试工程 和硬件连接发过来我给你看看
点赞  2019-9-6 16:38

版主帮我看一下

点赞  2019-9-6 19:14
引用: 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)
(下载次数: 18, 2019-9-7 09:22 上传)

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2019-9-7 09:26
请问一下怎样改成标准库来驱动
点赞  2019-9-7 13:04

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

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

  if ( whoamI != LPS33HW_ID )
        while(1)

点赞  2019-9-9 14:32
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复