本文以STM8S103F3P6编程为例,介绍STM8S103F3P6采集AD采样
新疆喜乐彩玩法电脑平台:Windows7 64位旗舰
编译软件:IAR
硬件平台:STM8S103F3P6
1。系统时钟初始化为内部16M
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //时钟 初始化时钟为1分频 16M
2.初始化ADC1 通道2为AD采集脚 10位AD
void Init_ADC(void)
{
GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT); //引脚初始化 初始化ADC通道引脚
ADC1_DeInit();
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, //单次转换
ADC1_CHANNEL_3, //通道
ADC1_PRESSEL_FCPU_D2, //预定标器选择 分频器 fMASTER 可以被分频 2 到 18
ADC1_EXTTRIG_TIM, //从内部的TIM1 TRGO事件转换
DISABLE, //是否使能该触发方式
ADC1_ALIGN_RIGHT, //对齐方式(可以左右对齐)
ADC1_SCHMITTTRIG_CHANNEL3, //指定触发通道
ENABLE); //是否使能指定触发通道
ADC1_Cmd(ENABLE); //使能ADC
}
3.获取AD值
uint16_t Get_Ad(void)
{
ADC1_StartConversion(); //启动AD转换
while(RESET == ADC1_GetFlagStatus(ADC1_FLAG_EOC)); //等待转换完成
ADC1_ClearFlag(ADC1_FLAG_EOC); //清除标志
uint16_t value = ADC1_GetConversionValue(); //读取AD值
return value;
}
4.编写主函数
void main(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //内部时钟16M
Init_UART1();
新疆喜乐彩玩法 Init_Timer4();
Init_ADC();
enableInterrupts();
while(1)
{
uint16_t value = Get_Ad();
Txd_buf[Txd_len++] = value / 10000 % 10 +'0';
Txd_buf[Txd_len++] = value / 1000 % 10 +'0';
Txd_buf[Txd_len++] = value / 100 % 10 +'0';
Txd_buf[Txd_len++] = value / 10 % 10 +'0';
Txd_buf[Txd_len++] = value % 10 +'0';
Txd_buf[Txd_len++] = 'n';
UART1_Send(Txd_buf,Txd_len);
}
}
关键字:STM8S103 AD采样 IAR 编辑:什么鱼 引用地址:http://news.zjgsmm.com/mcu/ic481138.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
上一篇:STM8S103之tim1捕获周期及占空比
下一篇:STM8S103之tim4普通定时器
- 关注eeworld公众号
快捷获取更多信息
- 关注eeworld服务号
享受更多官方福利
推荐阅读


