本文共 1315 字,大约阅读时间需要 4 分钟。
STM32F103ZET 嵌入式开发板采用标准板级配置,主要硬件参数如下:
ADC通道分配如下:
此外,通过官方 необ绘图了解更详细的端插表信息。
本系统允许以下两种ADC配置方式:
#include "stdio.h"#include "stm32f103xe.h"#include "std.types.h"
#define LED0_ON() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET)#define LED0_OFF() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET)
uint16_t adc_value = 0;uint8_t str_buff[64];
void URE_Send_Info() { `串口打印采样信息`}
void adc_get_value() { `启动ADC并等待完成`}
void main() { while (1) { `采集代码执行逻辑` }}
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { `处理完成回调`}
void main() { while (1) { `启动中断和定期循环` }}
通过对比多个版本,发现中断式采集在多任务环境下响应更佳,建议在线任务中谨慎使用HAL_Delay函数。同时注意GLIBC库版本匹配问题,避免卡顿或运行时死循环。
本次优化工作提醒我们,在关系式转换时要结合实际场景选择采集方式,避免不必要的性能消耗。在中断式编程中,善用中断优先级调整和任务分离策略,可以提升系统整体表现。
通过对比两种ADC转换方式,不仅提高了代码可维护性,还实现了数据采集的实时性和准确性。
转载地址:http://odxaz.baihongyu.com/