打印
[STM32F7]

NUCLEO-F722ZE+ADC+DMA工程建立

[复制链接]
812|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
说是要评测外设, 但是这板子上外设真心没有多少可评测的, 这里以内部ADC的使用来做个例子吧.

没有以太网,板子显得很荒凉. 开始建立工程.

如果没有722的同学,可以将CubeMX升级一下子.

时钟这么配置, 关于外部时钟, 可以参考我发的另外一个帖子, 简而言之, F7使用的是CBT6输出的8MHz的时钟信号.

跑到216M,也就是最高的频率.

开三个通道, 一个是IN3也就是相当于Arduino接口那里的A0, 一个内部温度传感, 一个是内部基准.

AIN3是这个接口, 方便等会测试, 悬空的话1000mV左右

做3个Rank,SCAN方式扫描

DMA打开,这里使用HalfWorld也成, 但是要跟你变量声明一致, 因为这个ADC最高也是12bit, 不超过半字.

可以生成工程了.


沙发
zhanzr21|  楼主 | 2017-3-13 19:50 | 只看该作者
生成工程后, 很多人的MDK会报警, 因为722是个比较新的片, 要安装F7_2.9.0的DFP才行.
但是对于大多数人的MDK,要离线下载这个DFP.
这里下载:
http://www.keil.com/dd2/Pack/

700多M, 建议使用GUI工具比如迅雷下载.

导入刚刚下载的dfp之后就能选择正确的设备了.

接下来配置一下子调试输出, 这里使用ITM来输出, 免去接串口的麻烦.
点这个:


把STDOUT定位到ITM上去,
[这里要修改代码,修改主要代码:
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {                               
                HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin);
                HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
                HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);
                                                               
                HAL_Delay(1000);
               
    JTemp = ((((g_adcBuf[0] * VREF)/MAX_CONVERTED_VALUE) - VSENS_AT_AMBIENT_TEMP) * 10 / AVG_SLOPE) + AMBIENT_TEMP;
                VRef = (g_adcBuf[1] * VREF)/(MAX_CONVERTED_VALUE+1);
                AIn3 = (g_adcBuf[2] * VREF)/(MAX_CONVERTED_VALUE+1);
                printf("Sample %u %u %u [%d'C] [%u mV] [%u mV] _ %u\n",
                g_adcBuf[0], g_adcBuf[1], g_adcBuf[2],
                JTemp, VRef, AIn3,
                HAL_GetTick()
                );
               
  /* USER CODE END WHILE */
全部代码请参考附件.
]
编译, 下载, 打开ST Link Utility,点开SWO Viewer:

如不出意料, 将会有这样的输出:

第一个通道:片上温度, 第二个通道:内部参考, 第三个通道: A0(AIN3)
温度的计算请参考工程中的公式, 一般误差为正负1度, 最高误差正负2度, 集成的温度传感器中算是比较准的了.
内部参考电压标称是1.21V, 测量值为1.205到1.206漂, 也算是比较准确的.

分享就此结束,附件是整个工程(含Cube工程)以供参考.
f722_t1_adc_test.zip (1.1 MB)

使用特权

评论回复
板凳
whtwhtw| | 2017-3-14 11:39 | 只看该作者
支持一下

使用特权

评论回复
地板
队长shiwo| | 2017-7-26 09:20 | 只看该作者
支持支持  感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1011

帖子

34

粉丝