你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

学习stm32

[复制链接]
小蚂蚁快溜跑 发布时间:2015-1-10 11:31
STM32从2014开学时开始买开发板学习,花了大概一个月时间利用库固件库把STM32得基本外设都试了一遍,可能时以前写过MFC程序所以对固件库还是比较快的上手了,但是对USB协议、文件系统、UCOS、还没有开始去深入学习!就我目前的水平好像还没有能力去看懂那些东西!以前只学过51单片机,开始学STM32的时候感觉和51完全不一样呀!
51哪有那么复杂得去寄存器配置呀,直接对IO口操作,所以学了STM32后我才对单片机有了一个比较深刻得认识,单片机其实就是按照数据手册来设置寄存器的值哪里要设置为1哪里要设置为0才能让IO口得到你想要的功能,有了固件库后你可以省掉很多时间去看数据手册它完全可以让你不用去了解寄存器而直接通过调用函数去配置寄存器,但是当你把固件库操作掌握后你可以去看固件库里面的底层函数是怎样去配置寄存器的,然后按照库函数的配置顺序去直接操作寄存器来实现你想要的功能,所以我觉得学习固件库是完全必要的!真搞不懂有些人竟然不屑于学固件库。但是当老师叫我测量一下STM32的单次ADC转换时间的时候,我完全不知道怎么去做,最后耐着性子去看ADC和定时器得硬件结构,最后想到了一个方法去测量时间:先打开定时器让他自动计数,然后在单次ADC转换前读一下计数寄存器得值(这个操作是直接读寄存器得的值的,因为好像库函数没有这个函数),等ADC转换完后再读一次值,相减后就是ADC转换时间了!所以直接操作寄存器和库函数要同时使用才能事半功倍呀!呵呵!但是操作寄存器你完全可以在库函数里面找到灵感和方法!
这是测ADC的核心代码:

c=TIM2->CNT; //读取定时器计数值
for(i=0;i<10;i++) //ADC循环测量10次
{
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));//等待一次AD转换结束
k=ADC_ConvertedValue; //读取转换的AD值
}
d=TIM2->CNT;//读取定时器计数值
printf("\t%d",d-c);//打印测量值



收藏 评论27 发布时间:2015-1-10 11:31

举报

27个回答
小蚂蚁快溜跑 回答时间:2015-1-10 11:34:06
自顶一个。。。
小蚂蚁快溜跑 回答时间:2015-1-10 11:42:48
对于个人的感觉大家都不感兴趣吗?
小蚂蚁快溜跑 回答时间:2015-1-10 11:43:57
我的帖子话说怎么不能再主页上现示啊。。。是大家水的太厉害,还是我太弱了。。。
默默前行 回答时间:2015-1-10 11:50:14
顶一个。。。
小蚂蚁快溜跑 回答时间:2015-1-10 11:51:06

三克油。。。。
小蚂蚁快溜跑 回答时间:2015-1-10 11:51:57

你也是学习的这个吗?。。。
默默前行 回答时间:2015-1-10 11:53:11
小蚂蚁快溜跑 发表于 2015-1-10 11:51
你也是学习的这个吗?。。。

是的,共同学习。
w453509596 回答时间:2015-1-10 12:05:39
一起学STM32啊
小蚂蚁快溜跑 回答时间:2015-1-10 12:20:21

恩恩。。。。一块进步
123下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版