初始化ADXL345芯片
void ADXL345init()
{
Single_WriteI2C(0x31,0x0B);//低电平输出,13位全分辨率,输出数据右对齐,16g量程
Single_WriteI2C(0X2C,0x0A);//数据输出速率为100HZ,10ms读一次数据
Single_WriteI2C(0X2D,0x28);//链接使能,测量模式
Single_WriteI2C(0X2E,0x80);//INT_ENABLE,使能动态监测终端
Single_WriteI2C(0X1E,0x00);//OFSX
Single_WriteI2C(0X1F,0x00);//OFSY
Single_WriteI2C(0X20,0x00);//OFSZ
Single_WriteI2C(0X2F,0x00);//INT_MAP, 发送各自中断到INT1引脚
}
关键字:STM32中 初始化 ADXL345芯片
引用地址:
STM32中 初始化ADXL345芯片
推荐阅读最新更新时间:2024-03-16 16:26
stm32专题十一:USART(三)初始化结构体和标准库函数分析
在之前的博客中分析了stm32串口的结构,和详细的发送、接受过程。现在来分析固件库中对于USART的标准函数 typedef struct { uint32_t USART_BaudRate; // 波特率 uint16_t USART_WordLength; // 帧数据长度(8位还是9位) uint16_t USART_StopBits; // 停止位 uint16_t USART_Parity; // 校验 uint16_t USART_Mode; // 模式:单收、单发或收发 uint16_t USART_HardwareFlowCo
[单片机]
CRC校验、STM32中CRC计算单元、CRC应用
从这一段时间后台反馈的问题可以看得出来,好些朋友对CRC没有什么概念,今天就在这里讲述一下关于CRC校验、STM32中CRC计算单元相关内容。 1关于CRC校验 CRC:Cyclic Redundancy Check,即循环冗余校验码。 CRC是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。 循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ---来自百度百科 学电子、计算机相关专业的同学都应该学习过CRC的基础原理。其原理说难不难,可以说就是一个公式。同时,
[单片机]
STM32库函数的使用过程中晶振参数与实际不符的问题
这段时间自己开了一块STM32F4的板子,调试过程中发现,外部电路焊接的晶振为8MHz,但在调试过程中检测得的时钟确是25MHz,令人恼火。 本着遇到问题解决问题的思路,开始思考问题出在哪里。 首先,将单片机的系统时钟配置为内部的16MHz晶振,单片机工作正常,说明电路板是没问题的。 之后,将单片机的系统时钟配置成外部8MHz晶振,发现通过RCC_GetClocksFreq函数获取的时钟值确是25MHz,由此观之问题可能出在两个方面: 1:晶振本身有问题; 2:RCC_GetClocksFreq函数获取时钟值问题。 通过用调换三个晶振,结果一样,初步判定晶振是没有问题的。那么问题就是出在RCC_GetClocksFreq函数上了,
[单片机]
STM32中的结构体是如何组织同类寄存器的
#define PERIPH_BASE ((u32)0x40000000)//端口地址 ?xml:namespace prefix = o ns = urn:schemas-microsoft-com:office:office / #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)//端口地址 #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)//端口地址 #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)// typedef unsigned long u32; typedef volatil
[单片机]
STM32中对SysTick_Init()函数(sysTick_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解
STM32中对SysTick_Init()函数(sysTick_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解: 实验:3个LED灯以500ms的频率闪烁。
[单片机]
PIC读书笔记2:延时函数,更新初始化函数
1:延时函数 初始化定时器然后使用函数: while(TMR1 Delay) //TMR1为计数器值,Delay为子定义变量(延时时间) { //wait } 2:更新初始化函数 微控制器的控制寄存器只是简单的RAM记忆单元,可能一个电源波动,电磁脉冲等会改变它的内容(小概率),只要时间足够长就会发现。因此当设计一个在相当长时间内运行的应用时,用户应考虑到周期性的 更新 主要外围器件的控制寄存器。(让我想起我们的月球探测器是不是因为这个为题出故障了。。。)
[单片机]
编写单片机程序为对串行口初始化并读出接收缓冲器的数据
题目:设fosc=11.0592MHz,试编写一段程序,其功能为对串行口初始化,使之工作于方式1,波特率为1200bps;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。 答案: Baud= 12 smod=1 时,x=208=D0H smod=0 时,x=232=E8H main: mov scon,#01010000b mov tmod,#00100000b mov th1,#0d0h mov tl1,#0d0h clr ea mov pcon,#80h setb tr1 loop: jnb ri,
[单片机]
STM8S各个模块初始化
/***************可选择的内部或者外部时钟*******************/ #ifdef HSE_EXT void ClkInit(void) { CLK_ICKR = 0X00; //禁止高速内部时钟,从停机(Halt) 或活跃停机(Active Halt) 模式快速唤醒禁止 CLK_ECKR |= 0X01; //使能外部时钟 while(!(CLK_ECKR & 0x02)); //看外部晶振是否启动 CLK_ECKR |= 0X01; //使能外部时钟 CLK_CKDIVR = 0Xf9; //外部12M HZ晶振作为CPU时钟 //入选2
[单片机]