摘要:
简介SQLite不支持并发支持的数据库大小能够达到TB,支持GB的字符串或BLOBs(二进制信息)。整个数据库存储在一个跨平台的数据文件上;安装(sqlite.org)源代码:amalgamation版本,把很多细小的东西合并成一个大家伙。sqlite3.exe:命令行工具库文件或源码:可集成在自己程序中命令行工具(sqlite3.exe)cmdsqlite3 filename.db(有则打开,无则新建)特殊表:SQLITE_MASTER(系统表),自动创建,自动读写,不要人为修改(不能对SQLITE_MASTER表进行DROP TABLE,UPDATE,INSERT,DELETE操作),用于 阅读全文
摘要:
GPIO原理:肖特基触发器:把模拟信号转为数字信号,即把信号变陡峭I/O端口默认被配置成浮空输入模式配置为模拟输入模式时:斯密特TTL被禁止,读取输入数据寄存器时数值恒为0;弱上拉和下拉电阻被禁止开漏输出模式下输入寄存器依然有效,实现真正的双向I/O功能在推挽模式时,读输出数据寄存器时可得到最后一次写的值开漏模式时,读输入数据寄存器时可得到I/O口状态GPIO配置指南:输入/输出: GPIOx_CRL共32位,每4位可控制一个引脚,如下面4位用来控制pin0MODEx决定了输入/输出模式:当MODEx>0时(三个值分别代表不同速率),为输出;当MODEx=0时,为输入;设置模式:首先由第 阅读全文
摘要:
串口初始化2时钟使能RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);GPIO模式设置(GPIO_Init)TX:GPIO_Mode_AF_PP 推挽输出RX:GPIO_Mode_IN_FLOATING 浮空输入串口协议设置USART_Init(GPIOx,USART_InitTypeDef)(波特率,8字长,1位停止位,无校验位,可收可发USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;)中断开启串口USART_Cmd 阅读全文
摘要:
boot0=0,boot1=x//flash区启动,通常boot0=1,boot1=0//厂家区启动,即ISP模式,下载程序用boot0=1,boot1=1/RAM启动 阅读全文
摘要:
为什么不直接用内部时钟? 因为内部时钟不准确,用于备用MCO是什么? 用于向外界输出芯片内的一些时钟,便于调试或向别的芯片提供时钟CSS是什么? CSS在外部HSE时钟异常时,会自动切换到内部时钟。可用软件控制CSS是否工作系统时钟初始化:使用V3.5的固件库时,在main函数执行之前会先执行SystemInit(这一点在startup_stm32f10x_md.s中被设置)(SystemInit函数在system_stm32f10x.c中),SystemInit根据system_stm32f10x.c内预定义的系统时钟(默认SYSCLK_FREQ_72MHz72M)和stm32f10x... 阅读全文
摘要:
systick是一个内核中的滴答器:滴答时间间隔:一般采用AHB时钟的8分频[SysTick->CTRL第2位清零],即一般是72/8=9M,即1s滴答9M次滴答总量:RELOAD寄存器读取RELOAD寄存器作为每次滴答的初值,每滴答一次减1(实时数值存到CURRENT寄存器),减到0时(可触发中断),重新读取重新滴答。RELOAD寄存器24位,9M滴答间隔情况下,单次循环最长时间大概1.8s中断: 标志位: SysTick->CTRL寄存器里的第16位为COUNTFLAG,当滴答到0时该位为1。如果读取该位,该位将自动清零使能中断: SysTick->CTRL寄存器的第1位 阅读全文
摘要:
中断类型个性设置NVIC设置(优先组,激活中断函数)GPIO设置:GPIO_Init(GPIOx,GPIO_InitTypeDef)时钟:GPIO|AFIO在使用引脚的重映射功能和外部中断时需要使用AFIO时钟输入模式(无需配置速度)外部中断设置:EXTI_Init(&EXTI_InitTypeDef);选择线路:EXTI_Line=EXTI_Line0-16!如GPIOA.1和GPIOB.1同一时刻只能工作一个设置模式:如EXTI_Mode=EXTI_Mode_Interrupt事件:中断:=事件+跳转一般选这个选择触发:EXTI_Trigger上升沿下降沿上升沿+下降沿使能:EXT 阅读全文
摘要:
STM32F10X系列有高级控制定时器(TIM1和TIM8)>通用定时器(TIMx)>基本定时器(TIM6和TIM7)。TIM6 和 TIM7,没有有输入捕获功能主要有三个用途:普通的定时器中断、产生PWM波、输入捕获。Detials:CNT计数器向上计数:从0开始加加,加到ARR(重装载值)时产生UEV事件,然后被赋值为0,继续慢慢加向下计数:从ARR开始减减,减到0时产生UEV事件,然后被赋值为ARR,继续慢慢减向上/向下:从0开始加加,加到ARR(重装载值)时产生UEV事件,接着就从ARR开始减减,减到0时产生UEV事件 //“产生UEV事件”有待商榷,还关系到下面要说的“屏 阅读全文
摘要:
STM32的硬件I2C复杂且不稳定,推荐用模拟。#include "myiic.h"#include "delay.h"//初始化IICvoid IIC_Init(void){ GPIO_InitTypeDef GPIO_InitStructu... 阅读全文
摘要:
时钟(RCC_APB1PeriphClockCmd,RCC_APB2PeriphClockCmd)GPIO|TIMx:RCC_APB2Periph_GPIOA,RCC_APB1Periph_TIMx GPIO(GPIO_Init)推挽复用:GPIO_Mode_AF_PPTIM(TIM_TimeBaseInit)->决定频率重装值:TIM_Period分频:TIM_Prescaler(当为0时表示不分频所以要减1)计数模式:TIM_CounterMode_Up/Down...PWM(TIM_OCxInit(&TIM_OCInitTypeDef)) //红色x代表通道,0-4PWM模 阅读全文
摘要:
DMA(DMA_Mode_Circular):外设数据 内存内存 内存DMA1:7通道(大容量设备:DMA2:5通道)DMA1DMA2简介两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道都同样支持软件触发优先级:各个通道数据同时Ready时,所在组优先级高的先,在相等优先权时由硬件决定(顺序表)模式:转移1次/不断转移中断/标志:每个通道都有 3 个事件标志(DMA 半传输,DMA 传输完成和 DMA 传输出错),数据:单次传输最大65536类型:1字节/半字(2字节)/字(4字节),独立数据源和目标数据区的传输宽度Size:多少个//通道... 阅读全文
摘要:
简介:测量温度范围为-55~+125℃ ,精度为±0.5℃工作电压: 3—5.5 V“身份码”:ROM 中的 64 位序列号是出厂前被光记好的,ROM 作用是使每一个 DS18B20 都各不相同,这样就可实现一根总线上挂接多个单总线(需上拉可增加驱动能力):低位在前负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作寄生电源ALIEN库初始化 u8 DS18B20_Init(void):GPIO(G11推挽)复位信号检测存在(0:存在)获取温度 short DS18B20_Get_Temp(void)〔返回值:-550~1250]速度:可编程的分辨率为9~12位,对应的可分 阅读全文
摘要:
简介电压:1.9~3.6V频段:2.4G 阅读全文
摘要:
独立看门狗时钟来源:LSI(不是很准确40KHZ左右)原理:计数器自减,减到0时复位。中途需要MCU手动"喂狗"(重装计数器),以示MCU正常工作控制寄存器:IWDG_KR写0x5555,使得IWDG_PR 和 IWDG_RLR 可写。(除了0x5555,其它都会使能写保护)写0xAAAA,重装计数器写0xCCCC,开启看门狗库函数:无需使能LSI,启动看门狗时LSI强制被启动取消寄存器写保护(向 IWDG_KR 写入 0X5555)IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能/失能设置预分频系数(40KHZ/?)和重装 阅读全文
摘要:
大简介大容量的 STM32F103 具有内部 DAC大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器输入:8位或12位(数据可以设置成左对齐或右对齐 )输出: 0~VREF+(可通过引脚输入获得更高精确度,2.4V ≤ VREF+ ≤ ... 阅读全文
摘要:
TIM输入输出通道是相同引脚初始化:GPIO:对应通道引脚输入时钟定时器初始化:TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); /TIM_Period &TIM_Prescaler &TIM_CounterMode决定了捕获时间的单位输入捕获初始化:T... 阅读全文
摘要:
简介:扫描:一次转换中可包含多个通道(信号),一个一个地转换,可设置转换顺序。最多达18个通道包括16个外部和2个内部(温度,电源)【规则组最多16个转换通道;注入组最多4个转换通道】(温度传感器和电源电压传感器只能出现在主ADC1中,注意打开连接通道):每个通道对应指定的引脚(查表)模式:单次、循环 ...时钟&速度:输入时钟不得超过14MHz,来自于PCLK2(APB2时钟)的分频,每个通道的最快转换时间为1us分组:规则组(类似main):多个通道共用一个结果寄存器注入组(类似中断):共有4个结果寄存器对应4个通道触发:规则组:软件或外部注入组:外部中断:规则组某通道转换完成,E 阅读全文
摘要:
FLASH中:0x08000000--0x08000000+SIZE保存的是用户代码Rule:16位为传输单位读数据:u16 STMFLASH_ReadHalfWord(u32 faddr)可以在通用地址空间直接寻址:data=*(vu16*)ADDR;[ADDR为32位数据,指向的数据为uv16型]写数据:写之前1:解锁FLASH_KEYR(FLASH_Lock(void);|FLASH_Lock(void);)写之前2:擦除,也就是其值必须是 0XFFFF,否则无法写入。[擦除页或直接擦除ALL] 1页=2k字节写之前3: 确保BSY 位为’0’写半字即16位(FLASH_Status F 阅读全文
摘要:
实现目标: 使用ADC1的16和17通道(对应内部温度传感器和内部VREFINT),DMA通道1(Only)管理,存储到内存并串口输出。Ready时钟:ADC:RCC_APB2Periph_ADC1,RCC_ADCCLKConfig(RCC_PCLK2_Div6);DMA:RCC_AHBPeriph_DMA1NVIC:DMA1_Channel1_IRQn //传输完成中断DMA_IT_TCDMA:起点/终点地址数据数量/单位传输方向地址是否自动加单次/连续模式是否M2M中断:DMA_IT_TCADC:ADC间合作方式:ADC_Mode = ADC_Mode_Independent单次/连续是. 阅读全文
摘要:
重映射:(改变默认的复用功能引脚绑定,重映射时,原引脚和复用功能毫不相干)方法:添加RCC_APB2Periph_AFIO时钟使能,所有重映射类型都要靠它在复用功能使能前(如USART_Cmd(USART1, ENABLE); 语句前)调用GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE); 阅读全文