STM32基础设计(5)---ADC转换(中断方式)

本文简单介绍了STM32F103C8,通过中断方式读取电压,不过最后楼主读取参考电压失败,还没有找到错误,所以读取的电压只能十六进制显示,如有不便请忽略本文!

本文的介绍按照一般流程来走:

1,串口的初始化

2,ADC初始化

3,中断初始化

4,编写中断函数

5,编写主函数

接下来详细介绍:

1,串口的初始化:

void usart_init()
{
	 GPIO_InitTypeDef Uart_A;  
      
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);  
    Uart_A.GPIO_Pin = GPIO_Pin_9;  
    Uart_A.GPIO_Speed = GPIO_Speed_50MHz;  
    Uart_A.GPIO_Mode = GPIO_Mode_AF_PP;  
    GPIO_Init(GPIOA,&Uart_A);  
      
    Uart_A.GPIO_Pin = GPIO_Pin_10;  
    Uart_A.GPIO_Speed = GPIO_Speed_50MHz;  
    Uart_A.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
    GPIO_Init(GPIOA,&Uart_A);   
	
	USART_InitTypeDef Uart;  
      
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);  
    Uart.USART_BaudRate = 115200;  
    Uart.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  
    Uart.USART_Mode = USART_Mode_Tx;  
    Uart.USART_Parity = USART_Parity_No;  
    Uart.USART_StopBits = USART_StopBits_1;  
    Uart.USART_WordLength = USART_WordLength_8b;  
    USART_Init(USART1,&Uart);  
      
    USART_Cmd(USART1,ENABLE);  
    USART_ClearFlag(USART1,USART_FLAG_TC); 
}

关于本段代码,我前面写的文章STM32基础设计(3)有详细讲解,此处不再赘述。

2,ADC初始化

typedef struct
{//配置ADC的模式,一个ADC是独立模式,2个是双模式
  uint32_t ADC_Mode;                      /*!< Configures the ADC to operate in independent or
                                               dual mode. 
                                               This parameter can be a value of @ref ADC_mode */
//配置ADC是否使用扫描,单通道不扫描,多通道扫描
  FunctionalState ADC_ScanConvMode;       /*!< Specifies whether the conversion is performed in
                                               Scan (multichannels) or Single (one channel) mode.
                                               This parameter can be set to ENABLE or DISABLE */
//配置ADC是单次转换还是连续转换
  FunctionalState ADC_ContinuousConvMode; /*!< Specifies whether the conversion is performed in
                                               Continuous or Single mode.
                                               This parameter can be set to ENABLE or DISABLE. */
//外部触发选择
  uint32_t ADC_ExternalTrigConv;          /*!< Defines the external trigger used to start the analog
                                               to digital conversion of regular channels. This parameter
                                               can be a value of @ref ADC_external_trigger_sources_for_regular_channels_conversion */
//转换结果数据对其方式
  uint32_t ADC_DataAlign;                 /*!< Specifies whether the ADC data alignment is left or right.
                                               This parameter can be a value of @ref ADC_data_align */
//ADC转换的通道数目
  uint8_t ADC_NbrOfChannel;               /*!< Specifies the number of ADC channels that will be converted
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值