ARTICLE

stm32 HAL 库改写 江协科大的程序

考试通知 · 政策解读 · 开班计划

发布时间:2026/10/12 5:31:47来源:迅启考通分类:考试资讯

文章详情

以下为资讯详情页模板:正文区域由后台内容渲染,图片与正文将自动替换为对应文章内容。

文章配图
stm32 HAL 库改写 江协科大的程序谢谢 B 站的“水手勇敢”博主带着咱们改写了江科大的标准库程序改用 HAL 库实现保持了学习的连贯性107这里做少量记录。108main.c 文件里调用了这几个函数 但这几个函数定义在 OLED.c 源文件里而且 main.c 并没有包含 OLED.c 对应的头文件而且编译也不报错这是为啥这还是 C 语言么以下是 dou 包的回答测试 dou 包是正确的确实出现了大量关于函数调用的警告109ADC 的单次范围转换 在标准库中 单次的范围转换包含多个序列 rank对应多个 channel 全部转换完成才会停止导致数据覆盖。妥协的实现办法不用 DMA就是只用一个序列 髯口 为其配置不同的通道从而也能实现范围 scan 转换的效果。 但在 HAL CUBE 里由于配置参数的变化如下 dou 包的解释以下的代码的正确执行就依赖于 CUbe 里的这个 discontinue 机制标准库里没有这个uint16_tvalues[4]{0};//用于存放ADC数据intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_ADC1_Init();/*模块初始化*/OLED_Init();//OLED初始化HAL_ADCEx_Calibration_Start(hadc1);//使用前校准OLED_Clear();OLED_ShowString(1,1,v1:);OLED_ShowString(2,1,v2:);OLED_ShowString(3,1,v3:);OLED_ShowString(4,1,v4:);while(1){for(uint8_ti0;i4;i){HAL_ADC_Start(hadc1);//ADC启动开始转换if(HAL_ADC_PollForConversion(hadc1,HAL_MAX_DELAY)HAL_OK){values[i]HAL_ADC_GetValue(hadc1);}}OLED_ShowNum(1,5,values[0],4);OLED_ShowNum(2,5,values[1],4);OLED_ShowNum(3,5,values[2],4);OLED_ShowNum(4,5,values[3],4);HAL_Delay(1000);} 当然这种情况下最正确的做法是 DMA。110HAL 库里的结构体封装好深啊 //启动循环模式hdma_memtomem_dma1_channel1.Init.ModeDMA_CIRCULAR;// 循环 DMAHAL_DMA_Init(hdma_memtomem_dma1_channel1);//启动DMAHAL_DMA_Start(hdma_memtomem_dma1_channel1,(uint32_t*)DataA,(uint32_t*)DataB,4);while(1){for(uint16_ti0;i4;i){DataA[i];}for(uint16_ti0;i4;i){OLED_ShowHexNum(1,13*i,DataA[i],2);}for(uint16_tj0;j4;j){OLED_ShowHexNum(3,13*j,DataB[j],2);}HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}111谢谢
特别提醒:考试时间、报名批次等安排如有调整,以河南省应急管理厅及官方考点最新通知为准。

最新新闻

看完这篇文章,想了解更多?

报考条件、材料清单、最近批次,顾问一次帮你理清,别自己摸索。