用hal库写的好处就是可以不用进行配置IO口发步骤.有良好的兼容性,更换芯片的时候改代码也简单. 首先打开STM32Cube 点击new project 选择芯片(此处我选的是STM32F051R8 选择结束后如下 配置一下芯片的相关配置 RCC我在左侧的表格里不用勾选,因为我用的是内部时钟,不用选.下面是我配置的时钟 之所以是48M,还要分频呢. 下面直接上图片 其他的都默认.然后按ALT+P,设置下工程,格式如下 这个可以把代码格式更模块化。建议选择
基于STM32Cube的ADC多通道采样
STMCube+MDK
我是ST-LINK下载所以用SW模式.ADC是4通道采样1-4.
打开串口一.只要选项选好,右边的芯片的引脚就自动配置好.
#串口问题就一个重定向就解决了 #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF); return ch; } void HAL_ADC_convcpltcallback(ADC_HandleTypeDef* hadc) { flag=1; HAL_ADC_Stop_DMA(hadc); } int main(void) { HAL_Init(); MX_GPIO_Init(); MX_ADC_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); SystemClock_Config(); HAL_ADC_Start_DMA(&hadc, (uint32_t*)&uhADCxConvertedValue, 4); while (1) { if(flag==1) { flag=0; HAL_Delay(400); printf("ch1 = %dn",uhADCxConvertedValue[0]); HAL_Delay(400); printf("ch2 = %dn",uhADCxConvertedValue[1]); HAL_Delay(400); printf("ch3 = %fn",(uhADCxConvertedValue[2]*3.3)/4095); HAL_Delay(400); printf("ch4 = %fn",(uhADCxConvertedValue[3]*3.3)/4095); HAL_Delay(400); } HAL_ADC_Start_DMA(&hadc, (uint32_t*)&uhADCxConvertedValue, 6); HAL_Delay(400); } } onvCpltCallback(ADC_HandleTypeDef* hadc) { flag=1; HAL_ADC_Stop_DMA(hadc); }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算