STM32
文章平均质量分 64
木易muyi
无
展开
-
vTaskNotifyGiveFromISR源码分析
以STM32平台为例,在STM32中数值优先级越低,逻辑优先级越高。 void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken ) { TCB_t * pxTCB; uint8_t ucOriginalNotifyState; UBaseType_t uxSavedInterruptStatus; configASSERT( xTaskToNotify ); (原创 2021-11-18 20:24:17 · 975 阅读 · 0 评论 -
FLASH预取
FLASH预取在stm32中,我们的代码都是放在flash中的,内核是M3,内核要读flash中的code,它是一条一条读一条一条执行的。读完第一条,还没读第二条代码时,内核先会把将要读的读的第二条代码先取好,放好等待它去读,这个过程称为预取指。Cortex处理器采用的是三级流水线的哈佛结构,一条指令的执行分为:取指阶段(Fetch stage)、译码阶段(Decode stage)、执行阶段(Execute stage)。CPU 通常需要 4 个周期( 72Mhz下, 2 个等待周期)读取 64原创 2021-11-09 22:05:09 · 3121 阅读 · 0 评论 -
AT24C02数据存储
一、引脚说明WP:当该引脚接GND时可读可写,接Vcc只读。二、器件地址开发板原理图:所以器件写地址为0xA0,读地址为0xA1。三、写操作原创 2021-01-15 19:17:51 · 1041 阅读 · 0 评论 -
模拟IIC(HAL库)
有关IIC的详细教程请看博主的另一篇文章本文只展示HAL库代码 /** * @brief 初始化IO * @param 无 * @retval 无 */void IIC_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; IIC_GPIO_CLK_ENABLE(); GPIO_InitStruct.Pin = IIC_SCL_PIN | IIC_SDA_PIN;原创 2021-01-06 17:24:12 · 2749 阅读 · 0 评论 -
模拟IIC(基于STM32)
话不多说,直接讲代码GPIO配置STM32的8种引脚模式void IIC_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOx,ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_InitStructure.GPIO_Pin = IIC_SCL_Pin|IIC_SDA_Pin; GP原创 2021-01-04 10:55:48 · 5113 阅读 · 4 评论 -
基于STM32的0.96寸OLED显示屏(模拟SPI)
OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快,可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。原创 2020-11-10 14:47:26 · 10345 阅读 · 14 评论 -
基于STM32读取W25Q64(模拟SPI)
配置SPI使用的GPIOspi.h#ifndef _SPI_H#define _SPI_H#include "stm32f10x.h"#define SPI_CS_CLK RCC_APB2Periph_GPIOA#define SPI_CS_Pin GPIO_Pin_0#define SPI_CS_PORT GPIOA#define SPI_CLK_CLK RCC_APB2原创 2020-10-19 21:29:48 · 4956 阅读 · 1 评论 -
基于STM32的模拟SPI通讯
1.SPI协议介绍SPI协议是由摩托罗拉公式提出的通讯协议(Serial Peripheral Interface串行外设接口),是一种高速全双工的通信总线。SPI通讯使用3条总线(SCK、MOSI、MISO)和片选线CS。CS:片选线也叫NSS,当有多个SPI设备与SPI主机相连时,设备的其他信号线SCK、MOSI、MISO同时并联到相同的SPI总线上(无论由多少个从设备,都共用这3条总线),而每个从设备都有独立的CS片选线,有多少个从设备就有多少个CS线。SPI通讯无设备地址,当主机要选择从设原创 2020-10-08 18:02:44 · 4683 阅读 · 5 评论 -
STM32F10xxx调试接口
该系列芯片支持两种调试接口:1、JTAG调试接口(JTAG-DP)2、串行调试接口(SW-DP)调试接口用到了一下引脚:如果我们需要用到这5个IO口,我们就需要改变调试模式:配置的是复用重映射和调试I/O配置寄存器(AFIO_MAPR)寄存器的SWJ_CFG[2:0]位Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRSTGPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);GPIO_PinR原创 2020-05-18 21:06:08 · 1307 阅读 · 0 评论 -
STM32屏蔽SysTick中断服务
SysTick_Config(uint32_t ticks);库函数是用来定义重装载值的,我们来看下它的详细信息。该库函数在在 core_cm3.h中被定义。static __INLINE uint32_t SysTick_Config(uint32_t ticks){ if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */原创 2020-05-19 22:09:31 · 3787 阅读 · 2 评论 -
STM32 SysTick两种定时设计
方案1:void SysTick_Init(void){ if (SysTick_Config(SystemCoreClock / 100000)) // SystemCoreClock / 100000 重装载值为720,CLK为72M,所以720/720M=10us中断一次 { /* Capture error */ while (1); }}void Delay_10us(__IO u32 nTime){ TimingDelay = nTime; // 使能滴答定原创 2020-05-19 21:51:44 · 370 阅读 · 0 评论