专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
多路ADC转换,ADC的值不更新,永远是起始值,求解决
2019-07-20 16:54
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
9902
8
1798
如题,硬件已经测试过了,没有问题。可是结果从串口传输到电脑上保持不变,不知道是什么问题呢?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
bg8wj
2019-07-21 18:09
[mw_shl_code=applescript,true]/* DMA外设初始化配置 */
DMA_ADC_Handler.Instance = DMA2_Stream0; //数据流选择
DMA_ADC_Handler.Init.Channel = DMA_CHANNEL_0; //通道选择
DMA_ADC_Handler.Init.Direction = DMA_PERIPH_TO_MEMORY;//外设到存储器
DMA_ADC_Handler.Init.PeriphInc = DMA_PINC_DISABLE; //外设地址不增加
DMA_ADC_Handler.Init.MemInc = DMA_MINC_ENABLE; //存储器地址增加
DMA_ADC_Handler.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;//字节模式
DMA_ADC_Handler.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD;//数据半字节
DMA_ADC_Handler.Init.Mode = DMA_NORMAL;
DMA_ADC_Handler.Init.Priority = DMA_PRIORITY_HIGH;
DMA_ADC_Handler.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
HAL_DMA_Init(&DMA_ADC_Handler);
/* 连接DMA */
__HAL_LINKDMA(&ADC1_Handler,DMA_Handle,DMA_ADC_Handler);
//以上是dma 句柄设置
//adc 部分
void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig;
// ADC功能配置
ADC1_Handler.Instance = ADC1;
ADC1_Handler.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; //4分频,ADCCLK=PCLK2/4=90/4=22.5MHZ
ADC1_Handler.Init.Resolution = ADC_RESOLUTION_12B; //12位模式
ADC1_Handler.Init.ScanConvMode = ENABLE; //扫描模式
ADC1_Handler.Init.ContinuousConvMode = ENABLE; //打开连续转换
ADC1_Handler.Init.DiscontinuousConvMode = DISABLE; //不连续采样模式
ADC1_Handler.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; //软件触发
ADC1_Handler.Init.ExternalTrigConv = ADC_SOFTWARE_START;//ADC_EXTERNALTRIGCONV_T1_CC1;
ADC1_Handler.Init.DataAlign = ADC_DATAALIGN_RIGHT; //右对齐
ADC1_Handler.Init.NbrOfConversion = ADC_NUMOFCHANNEL; //8个转换在规则序列中
ADC1_Handler.Init.DMAContinuousRequests = ENABLE; //打开DMA请求
ADC1_Handler.Init.EOCSelection = ADC_EOC_SEQ_CONV; //关闭EOC中断
if (HAL_ADC_Init(&ADC1_Handler) != HAL_OK){Error_Handler();}
// 配置采样通道 1
sConfig.Channel = ADC_CHANNEL_1;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_144CYCLES;
if (HAL_ADC_ConfigChannel(&ADC1_Handler, &sConfig) != HAL_OK){Error_Handler();}
// 配置采样通道 2
。。。。。。。。[/mw_shl_code]
加载中...
查看其它8个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
DMA_ADC_Handler.Instance = DMA2_Stream0; //数据流选择
DMA_ADC_Handler.Init.Channel = DMA_CHANNEL_0; //通道选择
DMA_ADC_Handler.Init.Direction = DMA_PERIPH_TO_MEMORY;//外设到存储器
DMA_ADC_Handler.Init.PeriphInc = DMA_PINC_DISABLE; //外设地址不增加
DMA_ADC_Handler.Init.MemInc = DMA_MINC_ENABLE; //存储器地址增加
DMA_ADC_Handler.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;//字节模式
DMA_ADC_Handler.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD;//数据半字节
DMA_ADC_Handler.Init.Mode = DMA_NORMAL;
DMA_ADC_Handler.Init.Priority = DMA_PRIORITY_HIGH;
DMA_ADC_Handler.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
HAL_DMA_Init(&DMA_ADC_Handler);
/* 连接DMA */
__HAL_LINKDMA(&ADC1_Handler,DMA_Handle,DMA_ADC_Handler);
//以上是dma 句柄设置
//adc 部分
void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig;
// ADC功能配置
ADC1_Handler.Instance = ADC1;
ADC1_Handler.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; //4分频,ADCCLK=PCLK2/4=90/4=22.5MHZ
ADC1_Handler.Init.Resolution = ADC_RESOLUTION_12B; //12位模式
ADC1_Handler.Init.ScanConvMode = ENABLE; //扫描模式
ADC1_Handler.Init.ContinuousConvMode = ENABLE; //打开连续转换
ADC1_Handler.Init.DiscontinuousConvMode = DISABLE; //不连续采样模式
ADC1_Handler.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; //软件触发
ADC1_Handler.Init.ExternalTrigConv = ADC_SOFTWARE_START;//ADC_EXTERNALTRIGCONV_T1_CC1;
ADC1_Handler.Init.DataAlign = ADC_DATAALIGN_RIGHT; //右对齐
ADC1_Handler.Init.NbrOfConversion = ADC_NUMOFCHANNEL; //8个转换在规则序列中
ADC1_Handler.Init.DMAContinuousRequests = ENABLE; //打开DMA请求
ADC1_Handler.Init.EOCSelection = ADC_EOC_SEQ_CONV; //关闭EOC中断
if (HAL_ADC_Init(&ADC1_Handler) != HAL_OK){Error_Handler();}
// 配置采样通道 1
sConfig.Channel = ADC_CHANNEL_1;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_144CYCLES;
if (HAL_ADC_ConfigChannel(&ADC1_Handler, &sConfig) != HAL_OK){Error_Handler();}
// 配置采样通道 2
。。。。。。。。[/mw_shl_code]
一周热门 更多>