推荐阅读最新更新时间:2024-03-16 16:19
STM32–中断程序总结(库函数)
一.配置中断优先级函数 void EXTI_NVIC_Config(void) { NVIC_InitTypeDef NVIC_InitStruct; /*初始化NVIC结构体 */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /*设置优先级分组为组一,组的区别具体在教材P133 */ NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn; /*选择中断源为EXTI0(EXTI Line0的中断源) */ /*注意:*/ /*EXTI0 EXTI1 EXTI2 EXTI3 EXTI4 对应中断源分别为 EXTI0_I
[单片机]
STM32 模拟I2C (STM32F051)
/** ****************************************************************************** * @file i2c simu.c * @brief simulation function * @CPU STM32F051 * @compiler Keil uVision V4.74 * @author MetalSeed * @copyright WSHHB * @version V1.0.0 * @date 18-Sept-2014 * @modifydate20-Sept-2014 ***
[单片机]
stm32快速学习7——LED闪烁(TIM2查询)
#include stm32f10x_gpio.h #include stm32f10x_rcc.h #include stm32f10x_flash.h #include stm32f10x_tim.h #include misc.h void RCC_Configuration(void); void GPIO_Configuration(void); void TIM_Configuration(void); int main(void) { RCC_Configuration(); GPIO_Configuration(); TIM_Configuration(); while(1)
[单片机]
ARM开发(1) 基于stm32的led跑马灯
一 跑马灯原理: 1.1 本实验实现2个led的跑马灯效果,即2个led交替闪烁。 1.2 实验思路:根据电路图原理,给led相关引脚赋予高低电平,实现电路的导通,使led灯发光。 1.3 开发环境 : MDK5 库函数版本开发 JLINK仿真 二 实验步骤: 2.1 led.h代码: #ifndef __LED_H #define __LED_H “#include “sys.h” #define LED0 PBout(5)// PB5 #define LED1 PEout(5)// PE5 void LED_Init(void);// 初始化 #endif 2.2 led.c代码(IO配置):
[单片机]
STM32开发过程的常见问题
STM32开发过程中遇到的一些问题,记录如下。 Q1:下载后程序不运行,反复排查代码没问题。 A1: 栈空间太小,打开startup_stm32f10x_hd.s,把 Stack_Size EQU 0x0200 后面这个数改成0x0800就好了(512 2000)。 Q2:DAC+DMA生成正弦波,有时正常,有时不正常。 A2: DAC_InitStructure结构中少初始化了一项DAC_LFSRUnmask_TriangleAmplitude,运行时该参数不确定,所以时有时无,加上DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_B
[单片机]
在STM32上移植FreeModbus RTU的一点经验总结
这几天因为工作需要,移植了modbus RTU到STM32来,之前也听说过modbus,但是没有深入了解过,还以为会像usb 那样复杂的,经过这几天的折腾,发现真的太简单了。为了防止过段时间又忘记了怎么移植,在这里把移植过程记录下来,也为了方便初次接触modbus的人。 废话少说,首先去下载源码,我下载的是 freemodbus-v1.5.0 ,解压后如图所示: 在demo文件夹中有很多移植好的例子,但是没有STM32的,不要紧,我们参考已有的例子来操作就可以了。在demo文件夹下新建一个文件夹,命名为STM32,将BARE文件夹里的文件全部复制过来。 然后,我们建立一个STM32的工程,我用的是mdk4.72,关于怎
[单片机]
STM32 usb_core.c分析
usb_core.c这个c文件是个庞大的文件,主要是定义了usb2.0的标注协议处理函数。 下面是这个文件的所有函数: /******************************************************************************* * Function Name : Standard_GetConfiguration. * Description : 返回当前配置变量的地址 * Input : Length -需要的字节 How many bytes are needed. * Output : None. * Return : 如果'Length
[单片机]
如何升级STM32单片机的代码
bootloader设置: static void check_boot_mode(void) { uint32_t JumpAddress; void(*Jump_To_Application)(void); if (((*((__IO uint32_t*)(APP_SEGA_START_ADDRESS+8))) & 0x2FFE0000 ) == 0x20000000) { JumpAddress = *(__IO uint32_t*) (APP_SEGA_START_ADDRESS + 12); Jump_To_Application = (void *)JumpAddress; __set_MSP(*((__IO ui
[单片机]