历史上的今天
返回首页

历史上的今天

今天是:2025年02月20日(星期四)

正在发生

2021年02月20日 | 关于基于STM8S,MPU6050驱动的说明及程序

2021-02-20 来源:eefocus

这个MPU6050使用的是IIC驱动的,而在具体电路图中没有使用STM8S自带的硬件IIC接口,所使用的是模拟IIC,


需要指出的是,在STM8S,IO配置的时候,SDA,对于挂SDA的IO来说,在STM8S的处理器上IO是没有真正的开漏输出功能的,


也就是将该IO配置成开漏输出的时候,IO高低电平输出实际是没有变化的,所以在IO具体输出或者读取状态的时候,必须切换IO模式,


另外需要注意的是,在配置IO的输出模式的时候,最好直接使用寄存器操作,如果使用


g_sda_output();


Handler_G_SDA_L;,也就是库函数操作的话,那么在配置成输出模式之后,并且接下来的代码立即输出高或者低的时候,


在电平的变化上会有5NS的时间开销,所以在使用STM8S,配置IO的时候,请尽量使用寄存器模式去操作!!


#ifndef __G1665_H


#define __G1665_H


#include "glib_api.h"


#define Handler_G_SDA_H (GPIOC->ODR |= GPIO_PIN_1)


#define Handler_G_SDA_L (GPIOC->ODR &=~ GPIO_PIN_1)


#define Handler_G_SCL_H (GPIOC->ODR |= GPIO_PIN_4)


#define Handler_G_SCL_L (GPIOC->ODR &=~ GPIO_PIN_4)


#define Handler_R_G_SDA (GPIOC->IDR &GPIO_PIN_1)


#define c_g_reg_pwr_mgr_1 0x6b


#define c_g_reg_smplrt 0x19


#define c_g_reg_config 0x1a


#define c_g_reg_gyro_config 0x1b


#define c_g_reg_accel_config 0x1c


#define c_g_reg_accel_xout_h0x3b


#define c_g_reg_accel_xout_l0x3c


#define c_g_reg_accel_yout_h0x3d


#define c_g_reg_accel_yout_l0x3e


#define c_g_reg_accel_zout_h0x3f


#define c_g_reg_accel_zout_l0x40


#define c_g_reg_temp_out_h0x41


#define c_g_reg_temp_out_l0x42


#define c_g_reg_xout_h 0x43


#define c_g_Reg_xout_l 0x44


#define c_g_reg_yout_h 0x45


#define c_g_reg_yout_l 0x46


#define c_g_reg_zout_h 0x47


#define c_g_Reg_zout_l 0x48


void gsensor_wirte(unsigned char reg_address,unsigned char data);


unsigned char gsensor_read(unsigned char reg_address);


void g_mpu6050_init(void);


#endif


推荐阅读

史海拾趣

DBS Microwave Inc公司的发展小趣事

随着公司产品的不断成熟和技术的不断进步,DBS Microwave开始积极拓展国际市场。公司参加了多个国际电子展会,与全球各地的客户建立了联系。同时,公司还积极寻求与国际知名企业的合作机会,通过技术交流和合作研发等方式,不断提升自身的技术水平和市场竞争力。这些努力使得DBS Microwave在国际市场上取得了良好的业绩。

Compound Photonics公司的发展小趣事

Compound Photonics公司成立于2007年,其初期发展并不顺利。然而,一个关键的转折点出现在公司收购Syntax-Brillian的专利之后。Syntax-Brillian是一家在微显示领域有着深厚技术积累的公司,其核心在于早年间收购的Colorado Microdisplays/Zight专利。这次收购使得Compound Photonics获得了进入微显示领域的重要技术基础,为后续的发展奠定了坚实的基础。

AUREL公司的发展小趣事

在追求经济效益的同时,AUREL公司也积极履行社会责任。公司注重环保和可持续发展,在生产过程中采用环保材料和节能技术,努力降低对环境的影响。此外,公司还积极参与社会公益事业,为当地社区的发展做出了积极贡献。这些举措不仅提升了AUREL公司的社会形象,也增强了公司的凝聚力和向心力。

请注意,以上故事是基于虚构的,旨在展示一个电子行业公司可能的发展路径和成就。如果您需要关于AUREL公司的具体信息或发展故事,建议直接查阅该公司的官方网站或相关新闻报道。

复旦微电子(FM)公司的发展小趣事

AUREL公司早期在电子行业中并不显眼,直到它成功研发出一款具有革命性的半导体芯片。这款芯片在功耗、性能和稳定性上都达到了前所未有的水平,立刻引起了市场的广泛关注。公司通过积极的市场推广和技术合作,逐渐打开了国内外市场,奠定了在电子行业中的技术领先地位。

Belden Wire & Cable公司的发展小趣事

为了进一步扩大市场份额,Belden公司开始实施全球扩张战略。公司先后在多个国家和地区设立了分支机构,将优质的产品和服务带到了世界各地。此外,Belden还积极寻求与其他知名企业的战略合作,通过强强联合,共同推动电线电缆行业的发展。这些合作不仅为Belden带来了更多的商业机会,还提升了公司在全球市场的竞争力。

AKM [Asahi Kasei Microsystems]公司的发展小趣事

在1902年,Joseph C. Belden在美国芝加哥创立了Belden公司,标志着这家电线电缆公司的诞生。创立初期,公司便专注于电线电缆的研发和生产,凭借其卓越的产品质量和可靠的性能,逐渐在市场上崭露头角。随着业务的发展,Belden逐渐扩大了生产规模,并增设了多个生产基地,以满足不断增长的市场需求。

问答坊 | AI 解惑

关于:wince4.2的SDK包,安装以后在evc环境下string定义出错!

inking... testgpioDlg.obj : error LNK2019: unresolved external symbol \"void __cdecl std::_Xlen(void)\" (?_Xlen@std@@YAXXZ) referenced in function \"private: bool __cdecl std::basic_string::_Grow(un signed int,bool)\" (?_Grow@?$ ...…

查看全部问答>

Keil初次使用, 报错

各位大侠, 小弟初次使用keil, 用C做一个非常小的51系列单片机试验小程序, 程序如下: #include #define uint unsigned int sbit gate1=P2^0;                           ...…

查看全部问答>

51自制遥控器出现问题(有代码)

利用AT89C51定时中断产生的载波频率达不到38K,只有12K左右,这是什么原因? 还有计数部分 endcount=223,产生9MS起始码,这是怎么计算的啊?按26us中断一次9MS应该是346啊? 例码如下: #include static bit OP;      & ...…

查看全部问答>

如何在IAR5.30上使用STM32的v3.0.0固件库进行应用开发

这个文档虽然是按照固件库V3.0.0介绍的,但同样适合于固件库V3.1.0版本。 请下载附件,在解压缩后,点击文件Using_STM32_Firmware_Library(3.0.0)_On_IAR_EWARM_v5.30.pps观看。 Using_STM32_Firmware_Library(3.0.0)_On_IAR ...…

查看全部问答>

【TI技术文章】:KeyStone 多核SoC工具套件:单个平台满足所有需求

过去,实施和部署多核片上系统 (SoC) 器件的一大挑战一直都是为编程和调试这些平台提供适当的工具。开发人员要充分发挥多核性能优势,就必须进行高效率分区,并在这些核上运行高质量软件。TI 支持 KeyStone 扩展的 Code Composer StudioTM (CCStudi ...…

查看全部问答>

做键盘的时候430的中断为什么不受控制

我现在用MSP430G2553做键盘实验,但是老是不成功,我还没按键盘,总是直接级进中断了。用的是中断的方法做的。由于我的4*4键盘坏了,所以我自己在面包板上面搭了一个只能有4个按键的键盘,但是作用完全一样,因为我用查询的方式写的代码已经验证成 ...…

查看全部问答>

c2000 launchpad调试出现的问题,你遇到了吗?

大侠们 调试发现c2000 launchpad执行以下语句有如下问题,跪求解释, GpioDataRegs.GPADAT.bit.GPIO0 = 0; GpioDataRegs.GPADAT.bit.GPIO1 = 0; GpioDataRegs.GPADAT.bit.GPIO2 = 0; GpioDataRegs.GPADAT.bit.GPIO3 = 0; 四条语句对应四个 ...…

查看全部问答>

如何往MSP430G2553芯片中下载程序?

如何往MSP430G2553芯片中下载程序?电路是如何设计的?把哪几个引脚引出来?? …

查看全部问答>

MSP430F5438a的RAM不够,解决方法

通过MSP430F5438a产生三个特殊波形,为了保证波形的准确率需要有足够的点数,内部通过数学公式计算产生波形的数字量,再通过DAC准换成模拟量,现在的问题是数学计算中需要用到好几个比较大的数组变量,然后RAM就不够了,因为数组是变量,所以不能用 ...…

查看全部问答>