完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 lcmbeyond04 于 2013-11-7 09:22 编辑
对于不同的产品可能会用到不同的接口,诸如SPI,I2C,I2S,CAN等,但是串口,只要涉及单片机的,串口是必须懂的,不是指烧程序必须要串口,而是对于调试程序,串口是万能的。 我朋友有在方案公司的,有在上市公司的,调试程序,首选软件调试,就是keil里面那个d图标,其次是串口,而对于JLINK什么的(我没用过,不知道是怎回事),一般很少用。玩51单片机我经常用软件调试,而STM32基本都是用串口,因为用软件调试经常被while(xx!=1);这类的语句卡住。 这次教程是使用串口来改变 LED闪烁的样式 和 延时的时间 。用串口做些有用的操作 串口的初始化,我基本是复制粘贴正点原子例程的,使用了库函数,初始化的程序基本都是一劳永逸的,前辈的东西不直接拿来用,太不给面子了。稍微修改了一下NVIC,因为自带的NVIC比库函数简单太多了,所以就不使用库函数,前一贴有介绍NVIC。 涉及到NVIC的就下面2句,简单到吓尿了不。 NVIC_SetPriority(USART1_IRQn,6); NVIC_EnableIRQ(USART1_IRQn); 串口中断使能接收中断即可,有人会问为什么发送不用开启中断??-> 因为爱情(╯3╰) 这个没太多要说,开始写这个程序也出来点问题,我加入了串口的语句进行调试,后面调试好了,也没删,只是注释了,有需求的可以看看是怎样使用串口调试,上面有注释。 我看过很多用串口发中文给单片机的。。。这个只能自娱自乐用。。在电脑上发中文给单片机,单片机回复中文。。怎么我感觉单片机有点多余,因为不要单片机也可以做到这个。在单片机中添加中文发去串口,那是很重要的,因为这是给人调试看的。而人发中文给单片机,你当它是步步高翻译机么。当然也有比较例外的时候,例如要查看中文字是否转换成LED屏用的字符(没试过纯猜测),初学51的时候,我就是给这些中文误导了。。感觉很神奇,同时一头雾水。 这次调试没遇到太多问题,时间都花在怎样检测串口协议上面,也是由于几个语句顺序弄乱了导致出错,所以这次我也不知给什么问题大家思考,而是直接给出了一个不成功的版本,当你按协议发送数据给单片机时,它会卡住,问题主要出在主函数和串口中断里(初始化是没问题的了),卡住时串口会返回数据,希望大家能跟着数据顺藤摸瓜,把问题找出来,这其实也是我写程序时的一时疏忽导致的错误。 当你能把这个消化掉,串口,NVIC,GPIO已经没太大问题了,下一个帖是使用定时器来代替delay函数达到不让CPU在空等待,然后在这个基础再加入按键捕捉瞬间的LED状态,这个需要点时间来修改。所以这期一共3个帖: https://bbs.elecfans.com/jishu_400655_1_1.html https://bbs.elecfans.com/jishu_400704_1_1.html 附件主要是能正常用得工程,和一个出错的工程,还要一份非常简单的自定义协议,烧写文件位于output ->obj |
|
相关推荐
7 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 18:36 , Processed in 0.731486 second(s), Total 86, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号