| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F103C8T6实现流水灯(C语言) -> 正文阅读 |
|
[嵌入式]STM32F103C8T6实现流水灯(C语言) |
一、实验原理
? 1.因为流水灯要操作的引脚都是在GPIO端口的,所以根据系统结构图,属于AHB总线,所以所要用的端口的复位和时间控制都受RCC控制。 ? 2.再看寄存器组起始地址表,可以看到RCC的地址范围,且可以看到要控制的寄存器都是在APB2总。 ? 3.跳到这里,就是外设时钟使能寄存器,,偏移量为0x18,而在前面一个表可以看到起始地址为0x4002 1000,偏移量为0x18,所以该寄存器的地址为0x4002 1018 ? 4.图中圈处理就是该寄存器里各位的含义,比如第三位也就是2那个位置为1时,就是GPIOA的时钟开启了。这时我们就可以用代码表达出来了,以PA7引脚为例
? ? 6.以PA7为示例,相应端口配置器GPIOA_CRL地址为GPIOA的基址+上偏移量,为0x40010800,而这个端口要开启,所以要使对应位为相应的值,我这里是0x20000000,设置推挽输出并设置最大速度为2Mhz,下面为相应代码
代码如下,有位操作,不熟悉自行查阅:
二、编程实现1.首先创造一个工程:led 勾选配置环境 ? ?2.然后再创造一个.c文件:led.c? 输入代码:
3.编译后点击魔法棒,然后生成hex文件 ? ?4.根据网上教程下载安装仿真软件flymcu ? 5.电路按此图拼装好? ? ? 6.勾选校验、编程后执行,点击开始编程(同时把编程到FLASH时写选项字节勾选掉)? ? ? ?7.进行运行 三、总结? ?通过本实验的学习,我对C语言调用函数参数的传递方式以及ARM寄存器使用方法有了更加深刻的理解,其实汇编语言和C语言有很多共通之处,我们可以在学习C语言的同时更好的理解和掌握汇编语言的相关知识。? ? ? ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:20:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |