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

【NUCLEO-F412ZG试用体验】+ADC+PWMDAC综合实验

[复制链接]
donatello1996 提问时间:2017-2-24 19:27 /
       这次我们来试试每个单片机都有的ADC和DAC,STM32的ADC的功能是非常强大的,首先通道数多达十几条,可以同时进行十几个设备的ADC工作;其次精度达到12位(听说F3系列的位数更高,有十六位,具体多少位我也没仔细查过)。由于HAL库的硬件ADC十分完善,对STM32家族各个型号的支持也非常到位,因此在书写ADC程序时并没有遇到阻碍。这里我选择的ADC通道为PA0,使用杜邦线与电位器连接。
2.PNG 5.PNG
    在调试DAC的时候遇到了问题,F412无法使用F4系列的HAL硬件DAC库,原因是硬件DAC库里面有个器件的宏定义,上面有F405,F407,F415,F429等等,唯独没有F412??而强行添加F412的宏定义进去的话会有21个报错;而在工程配置的C/C++页面改变F412为其它型号的话后果更可怕,会有高达92个报错,究其原因是很多库函数驱动头文件(如stm32f4xx_hal_adc.h stm32f4xx_hal_rcc.h stm32f4xx_hal_tim.h)等是与工程配置的C/C++页面的器件宏定义直接挂钩的,擅自修改会导致海量报错。
3.PNG 4.PNG
    既然硬件DAC在F412板子上面行不通,那么我们可以试试其它方式的“DAC”,相信有人已经想到了,那就是PWMDAC,PWMDAC原理是改变PWM通道的占空比来改变输出效果,与硬件DAC直接改变电压的原理不一样,但实际效果是一样的,并且优点有三:1.PWMDAC的占空比可调范围比硬件DAC的电压可调范围更大,以及占空比精度比硬件DAC的电压精度高;2.由于直流减速电机存在停转电压阈值,当硬件DAC的电压降至停转电压阈值以下时,电机会直接停转而不是跟电压存在线性关系,如果按照模电的理论知识来讲这个现象就是进入死区,而PWMDAC的电压大小一直都是逻辑1参考电压和逻辑0参考电压的快速变换,并不存在停转阈值这个问题,即占空比与电机转速一直是线性关系,不存在死区;3.STM32库函数对PWM的支持以及完善程度都是比硬件DAC要高很多的,对于新手来说硬件DAC的函数参数并不是那么好调,而PWM库函数当中所有可调参数都是清晰明确的,新手玩PWM很快就上手了。这里我使用的PWM通道跟很久之前的一次实验一样,选择定时器3的通道3,即PB0,即F412开发板上面的绿灯。
6.PNG
2.gif
    老规矩,上传一份工程文件+头文件。 工程文件.zip (11.19 MB, 下载次数: 61)

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

收藏 3 评论4 发布时间:2017-2-24 19:27

举报

4个回答
epochal 回答时间:2017-2-25 08:47:57
顶!!!很好的调试经验!
努力的人 回答时间:2017-2-25 11:34:23
支持一下


orima 回答时间:2017-2-25 12:19:26
调试经验!
五哥1 回答时间:2017-2-25 13:13:11
我说是否升级下cube呀

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版