找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2820|回复: 0
打印 上一主题 下一主题
收起左侧

STM8S ADC连续采集源程序

[复制链接]
跳转到指定楼层
楼主
ID:57466 发表于 2019-6-19 15:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include"stm8s.h"

void Init_ADC1()
{
   ADC1_Init( ADC1_CONVERSIONMODE_CONTINUOUS , //配置ADC1工作在连续转换模式
             ADC1_CHANNEL_2 ,   //选择通道2
             ADC1_PRESSEL_FCPU_D18,  //ADC的工作频率进行系统时钟的18分频
             ADC1_EXTTRIG_GPIO ,     //不使能外部触发产生采样
             DISABLE ,
             ADC1_ALIGN_RIGHT ,      //采样数据进行右对齐输出
             ADC1_SCHMITTTRIG_CHANNEL2 ,   //不使能通道施密特
             DISABLE
             );

   ADC1_Cmd(ENABLE);  //使能ADC1模块

   ADC1_ITConfig(ADC1_IT_EOCIE , ENABLE);  //配置ADC1采样数据结束时产生中断

   ADC1_StartConversion();    //使ADC开始转换数据
}



void USART_Init()
{
  UART1_Init(9600 ,   //配置串口通讯的波特率为9600
             UART1_WORDLENGTH_8D ,   //配置串口为8位数据通讯
             UART1_STOPBITS_1,       //配置串口通讯产生1个停止位
             UART1_PARITY_NO ,       //配置串口为无校验
             UART1_SYNCMODE_CLOCK_DISABLE , //配置串口为无流控制
             UART1_MODE_TX_ENABLE);       //使能串口为发送数据模式


  UART1_Cmd(ENABLE);    //对串口使能
}

void UART_Send(u8 data)
{
  while(UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
  UART1_SendData8(data);
}
void  Delay(u16 ms)
{
  u16 x , y;

  for(y = ms ; y > 0 ;y--)
   for(x = 16000 ; x > 0 ; x--);
}
int main()
{
  disableInterrupts();
  CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); //配置系统时钟为1分频,即16MHZ
  USART_Init();
  Init_ADC1();
  enableInterrupts();
  while(1)
  {
  }
}

完整代码请下载附件
ADC连续采样_基于中断.7z (643.42 KB, 下载次数: 54)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表