找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3842|回复: 5
打印 上一主题 下一主题
收起左侧

STM32学习体会

[复制链接]
跳转到指定楼层
楼主
ID:50574 发表于 2013-7-7 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学习STM32也有一段时间了,周围的人也在学习这款单片机,感觉它是越来越流行,没办法,功能强大,又便宜,谁不愿意用呢。搞不懂AVR,现在都快被挤兑成诺基亚了,还是死守价格不便宜!没学的就跳过啊,STM32,MSP430都是不错的选择
因为暑假的时候学了MSP430,所以现在学STM32让我感觉很容易就上手了,相比51,主要是初始化更加繁琐了,没办法嘛,功能强大,寄存器就多,多了配置起来就复杂一些。
个人感觉一开始还是走寄存器路线,因为只有学懂了底层的东西才能更好的理解它的功能是怎么实现的,才能从中找出来捷径。以后的话貌似还可以走库函数路线,那样可以大大的缩短开发周期。
几乎所有的单片机开始都是在介绍IO口,但是我感觉在此之前应该学习一下时钟,STM32的时钟使能分的HH特别细,每一个外设都有一个对应的时钟使能位,还有相对应的复位位,基本上都在RCC->APB1ENR,RCC->APB2ENR两个寄存器里面,几乎初始化每一个外设之前,包括IO口,都要使能它的时钟,STM32还有一个后背区,当单片机复位的时候,这个区域是不会复位的,它的RTC模块只要有后备电源,即使单片机关机了,也可以给你提供大概136年的实时时钟计时!
下面就是IO口了,它的IO口有8种模式,但是常用的就那么几种,推拉式输出,推拉式输入,复用功能等等,每四位控制一个IO口,最常用的就是0X8,0X3。使能了时钟,设置好模式,就可以使用它的IO了,输出电平的高低就是控制ODR,输入就是读IDR,但是这两个寄存器只能整体访问。但是STM32所有的位带操作为我们可以像操作51一样操作它的IO提供了可能,例如,如果要控制PA1这一位,只要对PAout(1),PAin(1)操作就行了,免去了数据的位运算!还有一点就是注意特殊IO,因为有的IO复位的时候默认是复用功能,如和JTAG有关的几个IO,如果你想把它当成普通IO使用,先把JTAG禁用了之后就OK了。
再后面就是外部中断了,它的每个IO都可以提供中断功能,对应着一条中断线,但中断线是有复用的,至于是哪一种中断,就要看它的中断标志寄存器了,如PA1,PB1,PC1,PD1,PE1共用EXTI1这一条中断线,几条中断线又共用一个中断向量,当然,有的是独享的。如RTC的秒中断和闹钟中断还有溢出中断,共用了RTCIRQChannel这个中断向量,进去中断服务程序之后,通过判断中断标志寄存器的哪一位置位了,就可以知道是哪个中断了。但是,中断标志要软件清零!这点很重要。STM32还有一点很人性化,就是中断向量可以重新映射!虽然有些限制,但还是很人性化的,给你画PCB的时候提供了更多选择!至于中断的配置,按部就班的去弄就好了!
后面还玩了看门狗,这个可以防止程序跑飞,不过目前对我们来说,作用不大。不过学过MSP430的朋友要注意,MSP430的看门狗复位时默认开启,而STM32的默认值也是关闭!如果对它不熟悉,就先别用,因为狗饿了就会咬你的。
后面玩了一下TFTLCD,得说明一下,触摸屏,它的“触摸”和“屏”是分开的,有不同的控制器,要分别编写驱动程序。我目前只弄了屏幕显示,这种彩屏最烦人的就是初始化,我的这块控制器有200多命令,所以告诉你一个简便方法,复制粘贴,然后做细节改动,因为我们不是做屏幕开发的,没必要去写这个初始化。之后就简单了,单点操作的话,先写入坐标,然后写入RGB的值,我的屏幕是565格式,就是R有五位控制,G有6位控制,B有5位控制,值越大,颜色越深!唯一烦人的就是他没有字库,要自己制作字库,建议把基本的ASCII中的字符做成字库存在头文件中。因为很少用汉字,而且汉字量实在是太大了!用PC2LCD取模软件制作。
昨天买了一块OLED屏幕,它是自发光的,所以看起来很舒服,而且亮度可以软件调控,大概只有硬币大小,就花了我40块钱,不过分辨率还可以,128×64,用过12864LCD的可以想象一下,同样的像素点,缩小到硬币大小,而且还是自发光,效果确实很漂亮。它的操作也不难,支持5种接口(这个要看控制器型号),有8080,6080,三线SPI,四线SPI,IIC,不过SPI模式下不能进行读操作。在8080控制模式下,读的时候最好来一次假读。同样的,初始化去复制粘贴就好了!然后每次写入都要求是整个字节写入。
时间原因,先写到这里,定时器改天再写。                                                                                            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:52630 发表于 2013-8-8 16:17 | 只看该作者
大哥,我支持你,虽然我51的外设还没学会,不像你这么牛,但你写的太好了;AVR我感觉没必要去学,学会51直接学STM32就好了,这个功能更为强大,更有激情;
回复

使用道具 举报

板凳
ID:62538 发表于 2014-6-3 09:28 | 只看该作者
向大神学习,向大神致敬
回复

使用道具 举报

地板
ID:56665 发表于 2014-6-6 10:41 | 只看该作者
谢谢分享,现买一块实验板,玩下stm32。
回复

使用道具 举报

5#
ID:123712 发表于 2017-3-12 22:29 | 只看该作者
讲的很好,向大神学习,我也正在学习之中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表