"); //-->
我只是个业余的电子技术爱好者,没读大学什么的...下面我讲讲我初学ARM的一点点插曲~
以前只会玩51单片机,一直觉得ARM比较困难,也没有使劲去学习
第一次玩TI的cortex-m3单片机是因为我在公司一块废旧电路板上看到有颗LM3S102芯片,于是看着这个只有28个脚的ARM很是向往知道他的奥妙。于是打算拆下了做块板子来做做实验,学习一下。
刚好那段时间在学Altium designer PCB设计的知识,于是兴冲冲的实际发挥一下,设计了一块基于LM3S102的最小系统板,为了节省成本,只打了5cmX5cm大小的板子,很小,可称得上迷你板了。上面附带的外设都以IIC总线或SPI总线的方式工作的。主要有RTC,EEROM,FLASH,AD,这几个芯片~其他什么的我觉得不是很需要,板子空间很有限,就没用了。所有输入输出口都以排针引出,JTAG使用7针简化单排针,还带有两个排针母座,一个就特意方便我接插我的12864屏幕,一个就引出了iic和spi总线。方便连接外部芯片。
板子发到工厂几天后就收到货了,心情很激动,第一次打PCB板,一眼看上去板子还不错。不过经过仔细的研究还是总结出了不少设计上的缺陷。我设计电路的时候,都是选了公司见得到的零件,所以,板子到了后一天就焊完了,不过没调试成功。
起初就是一直连接不上JLINK,因为是特制的单排针jlink接口,所以我用万能板做了一个小板子转接,试了好久,发现只在SWD模式下连接到一点,但都不能下载程序。后来仔细检查才发现转接板两个引脚间短路。。。
修复转接板后再试,似乎有点好转,但仍然连接不上,后来回家试的时候就可以了,发现是公司的Jlink-arm-flash软件版本不合适。
能下载程序了~高兴一把,但是后来试了好久,最基本的闪灯例程都出不来,程序改了看了,都找不出有什么原因,后来想到会不会是晶振没起振,于是去查了下晶振部分代码,直接把晶振改为使用内部振荡器,程序下载进芯片后,果然出现了惊喜,灯开始交替闪烁了。于是我估计外部晶振有什么问题或啥的。
灯可以闪了,最基本的GPIO操作实验完成了。说明板子能用,芯片能用,高兴着。然后要做的试验就是驱动我的OLED显示屏,是标准12864点阵屏幕。不带字库。要自己写字模。也是搞了好久都不成,最后发现一个玄机。原来写端口函数我用的不对。写入数值的时候,我只是用了0,1这两个数来清零和置位,其实是错的。这两个数只能写到端口的0引脚上。如果要对A端口的位3写1,应该在写端口函数的参数用1<<3,就是把这个1移动到位3。呵呵,现在已经成功操作液晶屏了。
虽然在学习和试验中遇到各种小问题,也耗费了很多时间去琢磨,但最终学到了不少东西,因此感觉快乐今后还要继续学习。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。