完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 上官梦舞 于 2016-11-14 11:32 编辑 前言: 单片机的学习在环境搭建完成后基本上第一件事是控制IO口,当然也有些单片机第一个教程是单片机的时钟系统。 我觉得时钟还是很复杂的,而且一般的单片机系统初始化都已经把时钟配置好了,吼吼吼,偷偷懒,直接使用,进入GPIO练习。 相信看这篇文档,应该使用的是我提供的附件里面的Demo工程。毕竟为了减少不必要的议论。 工程结构还是很清爽的,app里面放主函数和外部硬件程序或者驱动;device里面放了系统文件和启动文件。Driver里面放了单片机库文件,当前有看门狗WDOG和系统集成模块SIM(SIM提供系统控制和芯片配置寄存器);system里面放了任务文件。Com和doc空闲 打开main.c找到主函数int main()。 可以看出真的一个单片机第一件事是配置全局的时钟呢!!! 可是我玩51的时候都没这么麻烦,所以时钟还是先放放吧,反正有人已经配置好了。嘿嘿。 虽然现在我们不去了解时钟怎么配置的,但要知道我们目前使用的是哪个时钟,频率是多少。 了解系统的时钟频率 找到启动文件看到了重启后程序是先运行SystemInit()这个函数的。 那简单找到这个函数呗,在 那我们的时钟频率是多少呢? 原来有个脚CLOCK_SETUP的变量决定的啊,找到clock setup, 瞬间转移,666,技能+100分 顺便我们也看到了一些变量的定义 得知我们的时钟被配置为20MHz。 分析这个,注释已经加上。就是把端口都初始化一遍。 中断周期可以看到是systemcoreclock/1000*systick-cycle什么意思呢? 可以查到systick-cycle=1,也就是说我们的单片机是单周期指令。 系统时钟是20MHz,中断时间是把20MHZ分成1000份, 也就是20000个时钟周期产生一次中断,也就是1ms哦,1000次中断就是1S。 发现下面还有两个小函数是干嘛的呢? 原来是各个时间段的计数器。 因为本节讲GPIO,只是控制一下IO口,所以串口先不看了,直接看led初始化的。 里面只有ETM1Init(); 什么,定时器初始化???what,我要讲GPIO怎么定时器了,我擦。 (实际上这里demo的led是pwm的,你看看你的板,三个颜色还是呼吸灯呢!) 那怎么办?我要搞GPIO啊,那这里我们要开始写程序了。 加入GPIO.C库文件。 修改main.c 添加头文件路径 加入路径 写到这里吧,因为写的太细了,超长,附上原pdf文档。可以下载来看更方便。
【NV32F100x试用体验】 GPIO.zip
(942.75 KB, 下载次数: 15
)
下面是源文件,如果自己按照步骤有错误,可以对照。
nv32demoGPIO_12MHZ.zip
(1.18 MB, 下载次数: 15
)
谢谢支持。 |
|
相关推荐
|
|
|
|
|
|
|
|
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
522 浏览 0 评论
656 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
978 浏览 0 评论
1042 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
735 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12045 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 12:30 , Processed in 0.521588 second(s), Total 44, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号