给@CCss131 写的工程,stm32f103读取lps33hw数据通过串口打印
使用STM32CubeMX创建,基于NUCLEO-F103RB
我手里没有这个板子,@CCss131 你试一下,有什么问题回贴反馈,我给你修改
引用: CCss131 发表于 2019-9-3 18:06
请问一下怎样改成标准库来驱动
引用: littleshrimp 发表于 2019-9-3 19:17 stm32f103的标准库吗
对的对的,STM32CubeMX软件我还没用过,我用的板子是STM32的C8T6,可以像他这样改吗https://bbs.eeworld.com.cn/thread-1064955-1-1.html
引用: 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收发函数即可
版主你好,我用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);
里面死循环了才出来,应该是什么问题
引用: CCss131 发表于 2019-9-5 15:05 版主你好,我用SPI通信,MISO没有返回值,在platform_write中对应 u8 SPIx_Send_Byte(SPI_TypeDef* SPIx ...
你用示波器看一下CS,SCLK,MOSI的时序是否正常
如果正常读一下who am i看一下有没有返回数据
引用: CCss131 发表于 2019-9-5 15:58 波形是这样的,应该怎么去读WHO AM I的地址啊?
看你的时序应该是在写CTRL_REG2寄存器
读who am i执行platform_read函数,寄存器地址是0x0f
引用: CCss131 发表于 2019-9-5 18:26
读不出来,没有读到WHO AN I里面的 10110001 是不是我配置的函数不正确?
引用: CCss131 发表于 2019-9-6 09:37 我是直接用 platform_read函数在while(1)里面读,是不是用模拟I2C会容易一点
都差不多,i2c能方便点,2根线
看你的时序mosi和miso是标记错了吗?
没有控制CS信号
发送的数据也不像是0x0f
引用: CCss131 发表于 2019-9-6 16:25
搞不好,版主有没有用STM32F103驱动的相似例程
引用: 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根线接到对应的串口上即可
版主你好,请问一下INT_DRDY这个引脚有什么用,要怎么配置它?用ADC采样吗?还有现在用硬件的SPI驱动LPS33HW,程序卡在了这里,应该怎么解决
whoamI = 0;
lps33hw_device_id_get(&dev_ctx, &whoamI);
if ( whoamI != LPS33HW_ID )
while(1)