完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我想要最基本的功能 - 数据就绪中断,但似乎不那么容易出来。这是我的配置: void lis3dh_init(void) { // Inizialize MEMS传感器 lis3dh_reset(); //设置ODR(打开设备) LIS3DH_SetODR(LIS3DH_ODR_50Hz); //设置PowerMode LIS3DH_SetMode(LIS3DH_NORMAL); //设置Fullscale LIS3DH_SetFullScale(LIS3DH_FULLSCALE_4); //设置轴启用 LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE); LIS3DH_Setint1Pin(LIS3DH_CLICK_ON_PIN_INT1_DISABLE | LIS3DH_I1_INT1_ON_PIN_INT1_DISABLE | LIS3DH_I1_INT2_ON_PIN_INT1_DISABLE | LIS3DH_I1_DRDY1_ON_INT1_ENABLE | LIS3DH_I1_DRDY2_ON_INT1_DISABLE | LIS3DH_WTM_ON_INT1_DISABLE | LIS3DH_INT1_OVERRUN_DISABLE); //初始化计步器 IntPedomter(); } void get_acc_data(void) { if(!g_int_triggered)返回; AxesRaw_t数据; LIS3DH_GetAccAxesRaw(&amp; data); / *读取加速度XYZ数据* / PEDO_SampWrite(((data.AXIS_X)&gt;&gt; 6)&lt;&lt; 3,((data.AXIS_Y)&gt;&gt; 6)&lt;&lt; 3,((data.AXIS_Z)&gt;&gt; 6) &LT;&LT; 3); // PRINTF(''%d t%d t%d n'',(data.AXIS_X)/ 8,(data.AXIS_Y)/ 8,(data.AXIS_Z)/ 8); } 我已经将INT1引脚配置为低至高边沿触发引脚。但是,当我使用示波器获取波形时,它是一条直线,我看不出它的任何变化。而且也无法获得任何加速度数据。 所以我的问题是如何正确配置数据就绪中断?谢谢。 以上来自于谷歌翻译 以下为原文 Hi, I want the most basic function -- data ready interrupt, but it seems not so easy to come out. Here are my configurations: void lis3dh_init(void) { //Inizialize MEMS Sensor lis3dh_reset(); //set ODR (turn ON device) LIS3DH_SetODR(LIS3DH_ODR_50Hz); //set PowerMode LIS3DH_SetMode(LIS3DH_NORMAL); //set Fullscale LIS3DH_SetFullScale(LIS3DH_FULLSCALE_4); //set axis Enable LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE); LIS3DH_SetInt1Pin(LIS3DH_CLICK_ON_PIN_INT1_DISABLE | LIS3DH_I1_INT1_ON_PIN_INT1_DISABLE | LIS3DH_I1_INT2_ON_PIN_INT1_DISABLE | LIS3DH_I1_DRDY1_ON_INT1_ENABLE | LIS3DH_I1_DRDY2_ON_INT1_DISABLE | LIS3DH_WTM_ON_INT1_DISABLE | LIS3DH_INT1_OVERRUN_DISABLE ); //initialize the pedometer IntPedomter(); } void get_acc_data(void) { if(!g_int_triggered) return; AxesRaw_t data; LIS3DH_GetAccAxesRaw(&data);/* Read the accel XYZ data*/ PEDO_SampWrite(((data.AXIS_X)>>6)<<3, ((data.AXIS_Y)>>6)<<3, ((data.AXIS_Z)>>6)<<3); // PRINTF(''%dt%dt%dn'', (data.AXIS_X)/8, (data.AXIS_Y)/8, (data.AXIS_Z)/8); } And I've already configure the INT1 pin as a low-to-high edge triggered pin. But when I use the oscilloscope to get the waveforms, it is a straight line, I cannot see any change from it. And also cannot get any acceleration data. So my question is how to configure the data ready interrupt correctly? Thank you. |
|
相关推荐
1个回答
|
|
我认为传感器没有运行(它处于断电模式),因为你没有
’ 得到任何数据。 结果,不会发生数据就绪中断。 原则上你的配置是正确的,但我不知道 不知道你的函数LIS3DH_SetXxxx()|)发生了什么 。 要在INT1引脚上使能数据就绪中断,必须将CTRL_REG3(0x22h)中的I1_DRDY1位置1。 最好的祝福 米罗斯拉夫 以上来自于谷歌翻译 以下为原文 I think the sensor is not running (it is in power down mode), because you don ’ t get any data. In consequence data ready interrupt can not occur. In principle you configuration is correct, but I don ’t know what is going on in your functions LIS3DH_SetXxxx(…) . To enable data ready interrupt on INT1 pin, you have to set bit I1_DRDY1 in CTRL_REG3(0x22h). Best regards Miroslav |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2730 浏览 1 评论
3239 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1808 浏览 1 评论
3647 浏览 6 评论
6035 浏览 21 评论
1338浏览 4评论
198浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
273浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:33 , Processed in 1.407631 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号