![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
stm32 学习笔记
1947873692
这个作者很懒,什么都没留下…
展开
-
CAN总线
一、编程要点 CanTxData.StdId = 0; CanTxData.ExtId = PASS_ID; CanTxData.IDE = CAN_Id_Extended; CanTxData.DLC = 1; CanTxData.Data[0] = 10; CanTxData.RTR = CAN_...原创 2018-09-02 11:03:24 · 888 阅读 · 0 评论 -
ADC_双重同步规则
一、同步规则同步规则模式 ADC1 和 ADC2 同时各转换一个规则通道组,其中 ADC1 为主, ADC2 为从。 ADC1转换的结果放在 ADC1_DR的低 16位, ADC2转换的结果放在 ADC1_DR 的高十六位。二、触发转换方式ADC1ADC_SoftwareStartConvCmd( ADCx_1, ENABLE); //软件触发使能ADC2ADC_Ext...原创 2018-08-29 19:20:37 · 1920 阅读 · 0 评论 -
ADC_多通道DAM传输
一、初始化DMA传输 DMA_InitTypeDef DMA_InitStructure; //定义结构体 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //开启DMA时钟 DMA_DeInit(DMA1_Channel1); //决定数据从哪里来到哪里去 DMA_InitStructure.DMA_Periphera...原创 2018-07-03 18:53:45 · 1556 阅读 · 1 评论 -
基本定时器
一、编程要点1、初始化时基结构体2、配置中断优先级3、写中断服务函数4、写主函数二、定时时间计算定时时间 = 中断周期 * 中断次数 (以1S为例)TIM_Prescaler -> TIMxPSC 寄存器TIM_Period -> ARR (自动重装载寄存器) TIMxCLK 系统时钟CK_CLK = 1/(TIMxCLK/(PSC+1))中断周期 = ...原创 2018-06-28 11:07:36 · 656 阅读 · 0 评论 -
ADC_单通道输出
一、编程要点1、初始化ADC相关GPIO2、设置ADC工作参数 1)配置ADC工作时钟 2)转换通道顺序和采样时间 3)使能转换完成通道 4)使能软件触发3、配置中断分组4、编写中断服务函数二、结构体&库函数1、ADC 初始化结构体typedef struct{ uint32_t ADC_Mode; /*!< ...原创 2018-07-01 17:17:43 · 1973 阅读 · 0 评论 -
FATFS_FLASH文件系统
一、编程要点1、将FATFS文件系统添加到工程中2、修改diskio.c 文件接口以及ffconf.h相关宏 3、编写测试函数二、修改diskio.c 文件1、disk_status()函数功能:获取磁盘当前(物理)状态DSTATUS disk_status ( BYTE pdrv /* 磁盘号*/){ DSTATUS stat; switch (pdrv) { case ATA_S...原创 2018-06-25 22:47:39 · 1029 阅读 · 0 评论 -
高级定时器—PWM互补输出
一、编程要点1、初始化TMI相关GPIO2、初始化时基结构体3、初始化比较输出结构体4、初始化死区刹车结构体5、编写呼吸灯函数二、结构体&库函数1、时基结构体 typedef struct{ uint16_t TIM_Prescaler; /*!< 预分频器 配置TIMxPSC 寄存器 */ uint16_t TIM_CounterMode; ...原创 2018-06-30 16:36:38 · 5398 阅读 · 0 评论 -
SPI_FLASH
一、编程要点原创 2018-06-17 17:44:25 · 339 阅读 · 0 评论 -
I2C_EEPROM 写入多字节 小数
一、写多字节void I2C_WriteMultibyte(uint8_t Addr,uint8_t *pBuffer,uint8_t num); void I2C_WriteMultibyte(uint8_t Addr,uint8_t *pBuffer,uint8_t num) //写入多个字节{ u8 i,temp; temp=num/8; //判断循环次数 for(...原创 2018-06-17 12:26:24 · 2178 阅读 · 2 评论 -
DMA mtp
一、结构体配置void DMA_mtp_Config(void){ DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); DMA_InitStructure.DMA_PeripheralBaseAddr = USART_DR_addr; //U...原创 2018-06-08 08:16:04 · 154 阅读 · 0 评论 -
DMA_mtom
一、编程要点1、初始化DMA结构体 数据从哪里来到哪里去 传输数目 传输单位 什么时候传输结束2、清楚相应标志位 3、DMA传输使能二、结构体&库函数1、DMA_InitTypeDefDMA_ InitTypeDef 初始化结构体typedef struct{uint32_t DMA_PeripheralBaseAddr; // 外设地址uint32_t DMA...原创 2018-06-05 22:24:18 · 1625 阅读 · 0 评论 -
I2C_EEPROM
一、编程要点1、I2C相关GPIO以及外设使能2、初始化I2C结构体(模式、地址、速率等参数)3、编写I2C读写函数4、对EEPROM进行读写二、结构体&库函数1、I2C初始化结构 ( I2C_InitTypeDef )typedef struct{ uint32_t I2C_ClockSpeed; /*!< I2C通讯速率 不高于400 000 */ ...原创 2018-06-11 22:16:03 · 535 阅读 · 0 评论 -
USART_串口回显控制
一、程序内容1、串口发送并回显2、串口发送控制二、库函数1、串口接收数据函数uint16_t USART_ReceiveData(USART_TypeDef* USARTx)dat=USART_ReceiveData(USART1); @brief 串口接收数据 @param USARTx (1-5) @retval 接收的数据三、程序源码vo...原创 2018-05-20 17:27:54 · 4369 阅读 · 0 评论 -
USART_串口通讯2
一、编程内容1、串口发送两个字节2、串口发送数组3、串口发送字符串二、新增库函数串口发送完成检测函数FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, u16 USART_FLAG)USART_FLAG_TC 用于判断串口数据是否发送完成 USART_FLAG 值USART_FLAG 描述USART_FLAG_CTS CTS 标志位US...原创 2018-05-20 12:27:57 · 770 阅读 · 0 评论 -
USART_串口通讯1
一、编程要点总结1、初始化USART1相关GPIO2、初始化USART结构体3、 配置中断优先级(NVIC)4、串口使能5、写中断函数二、代码分析1、初始化USART1相关GPIOGPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABL...原创 2018-05-19 21:22:15 · 1110 阅读 · 0 评论 -
RTC时钟
一、编程要点 1、配置RTC时钟 2、开启RTC中断(秒,闹钟,溢出) 3、写中断服务函数 二、RTC基础知识 三、配置RTC的一般步骤 1、使能PWR和BKP时钟:RCC_APB1PeriphClockCmd(); PWR_BackupAccessCmd(); 2、初始化 BKP(备份寄存器) BKP_DeInit(); 3、开启LSE时钟 RCC_LSEC...原创 2018-09-13 22:50:08 · 964 阅读 · 0 评论