生成工程后, 很多人的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, 下载次数: 6)
|