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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Proteus仿真STM32F103R6的寄存器版跑马灯程序

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

STM32最簡單的外設莫過于IO口的高低電平控制了, Proteus仿真STM32F103R6的跑馬燈程序。

一、原理圖

二、跑馬燈C程序

// 粗略延時函數 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偏移地址:0X18*(unsigned int *)(0X40021000 + 0X18) |= (1 << 3);// 配置IO口為輸出模式// CNFy[1:0]: 00 - 通用推挽輸出模式// MODEy[1:0]:01 - 輸出模式,最大速度10MHzfor(unsigned int i=0; i<8; i++){// GPIOB起始地址:0X40010C00// GPIOx_CRL偏移地址:0X00*(unsigned int *)(0X40010C00 + 0X00) |= (1 << (4*i+0));*(unsigned int *)(0X40010C00 + 0X00) &= ~(1 << (4*i+1));*(unsigned int *)(0X40010C00 + 0X00) &= ~(1 << (4*i+2));*(unsigned int *)(0X40010C00 + 0X00) &= ~(1 << (4*i+3));}// 設置IO口為高電平,關閉LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0C*(unsigned int *)(0X40010C00 + 0X0C) |= 0xFF;while(1){for(unsigned int i=0; i<8; i++){// 設置IO口為低電平,打開LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0C*(unsigned int *)(0X40010C00 + 0X0C) &= ~(1 << i);delay(1);// 設置IO口為高電平,關閉LED燈// GPIOB起始地址:0X40010C00// GPIOx_ODR地址偏移:0X0C*(unsigned int *)(0X40010C00 + 0X0C) |= (1 << i);delay(1);}} }

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

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

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