完善资料让更多小伙伴认识你,还能领取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
)
谢谢支持。 |
|
|
相关推荐
|
|
|
|
|
|
|
|
|
|
|
|
谢谢分享,本人正需要!!!!
|
|
|
|
|
|
|
|
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 15:46 , Processed in 1.688791 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖