日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)

發布時間:2025/5/22 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

跑馬燈程序,存儲器映像。用宏定義,增強程序的可讀性。。

頭文件:

#ifndef __STM32F10x_H #define __STM32F10x_H#define PERIPH_BASE (0X40000000) #define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE + 0X10000) #define AHBPERIPH_BASE (PERIPH_BASE + 0X20000)#define RCC_BASE (AHBPERIPH_BASE + 0X1000) #define GPIOB_BASE (APB2PERIPH_BASE + 0X0C00)#define RCC_APB2ENR *(unsigned int *)(RCC_BASE + 0X18) #define GPIOB_CRL *(unsigned int *)(GPIOB_BASE + 0X00) #define GPIOB_CRH *(unsigned int *)(GPIOB_BASE + 0X04) #define GPIOB_ODR *(unsigned int *)(GPIOB_BASE + 0X0C) #endif

主函數:

#include "stm32f10x.h"// 粗略延時函數 static void delay(unsigned int n) {for(unsigned int i=0; i<n; i++){for(unsigned int j=0; j<1024; j++){for(unsigned int k=0; k<1024; k++){__asm("nop");}}} }int main(void) {// 使能GPIOB端口時鐘// RCC起始地址:0X40021000// RCC_APB2ENR偏移地址:0X18RCC_APB2ENR |= (1 << 3);// 配置IO口為輸出模式// CNFy[1:0]: 00 - 通用推挽輸出模式// MODEy[1:0]:01 - 輸出模式,最大速度10MHzfor(unsigned int i=0; i<8; i++){// GPIOB起始地址:0X40010C00// GPIOx_CRL偏移地址:0X00GPIOB_CRL |= (1 << (4*i + 0));GPIOB_CRL &= ~(1 << (4*i + 1));GPIOB_CRL &= ~(1 << (4*i + 2));GPIOB_CRL &= ~(1 << (4*i + 3));}// 設置IO口為高電平,關閉LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0CGPIOB_ODR |= 0xFF;while(1){for(unsigned int i=0; i<8; i++){// 設置IO口為低電平,打開LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0CGPIOB_ODR &= ~(1 << i);delay(1);// 設置IO口為高電平,關閉LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0CGPIOB_ODR |= (1 << i);delay(1);}} }

?

總結

以上是生活随笔為你收集整理的Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。