STM 32 —— Hello World (寄存器方式实现流水灯) STM 32 上的 C 程序,与我们平常所写的 C 程序有所不同,我们平时缩写的 C 程序可以在命令行或编译器中看到输出结果,而 STM 32 中的 C 程序,我们在电脑上运行时只能看到程序的运行状态,所以 STM 32 ,中一般
GPIOC 外设内部含有很多个寄存器,比如GPIOC_CRL、GPIOC_CRH 端口配置寄存器、GPIOC_BSRR 置位复位寄存器等,通过他们各自的偏移地址就可以获取对应的寄存器地址,然后要操作地址里面的内容就需要使用到指针,将其强制转换为 unsigned int*指针类型,然后在通过一个*指针来操作该地址里面的内容。
根据其偏移值可以得到 RCC 时钟外设的基地址,然后可通过《STM32F1xx 中文参考手册》的“6 小容量、中容量和大容量产品的复位和时钟控制(RCC)”的“6.3.7 APB2 外设时钟使能寄存器(RCC_APB2ENR)”可找到对应的端口 RCC 使能寄存器,只要将 GPIOC 端口时钟使能即可。
一个32位置位/ 复位寄存器(GPIOx_BSRR), 一个16位复位寄存器(GPIOx_BRR), 一个32位锁定寄存器(GPIOx_LCKR)。 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。每组IO口含下面7个寄存器,一共可以控制一组GPIO的16个IO口。 - GPIOx_CRL:端口配置低寄存器,CRL控...
代码包括:包含stm32f10x.h头文件,定义寄存器基地址。定义宏引用寄存器地址。编写SystemInit函数进行初始化。使用循环和条件判断,通过GPIOC_BSRR和RCC_APB2ENR寄存器操作,实现PC0到PC8的低电平输出,形成流水灯效果。编写时需注意:包含stm32f10x.h头文件。编写SystemInit函数进行初始化。开启GPIOC时钟。
.端口输出寄存器配置 本次实验使用GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚控制LED灯,GPIO是属于APB2...
一、实验原理(一)寄存器地址查找STM32给不同的寄存器分配了不同的地址在《STM32中文参考手册_V10》的第28页,有不同寄存器的地址范围。然后找到端口输入寄存器的地址偏移,这样就能找到对应端口的所在位置(二)GPIO端口初始化在参考输入手册中查询时钟,找到想要的结果找到偏移地址和对应端口的位置二、实际操作与代码实现(...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、使用stm32CubeMX点亮流水灯前言提示:以下是本篇文章正文内容,下面案例可供参考一、使用stm32CubeMX点亮流水灯1.打开CubeMX,点击access to mcu selector创建一个新项目2.选择芯片STM32F 103C83.然后点击System Core,进入里面的SYS,在debug...
嵌⼊式系统——基于Keil5的STM32固件库寄存器编程实现流⽔灯//PF9-LED0,PF10-LED1 //PF13-LED2,PF14-LED3 #define rRCCAHB1CLKEN *((volatile unsigned long *) 0x40023830)#define rGPIOF_MODER *((volatile unsigned long *) 0x40021400)#define rGPIOE_MODER *((volatile unsigned long *) ...
rGPIOF_ODR = r_value; }voidled1_ctr(intis_on){unsignedlongr_value; r_value = rGPIOF_ODR; r_value |= (1<<10);//clearif(is_on) r_value &= ~(1<<10); rGPIOF_ODR = r_value; }voidled2_ctr(intis_on){unsignedlongr_value; ...