历史上的今天
返回首页

历史上的今天

今天是:2025年03月31日(星期一)

正在发生

2020年03月31日 | STM8S ADC初始化设置及应用

2020-03-31 来源:eefocus

  1. //ADC通道号定义

  2. #define ADC_Chanel0 (unsigned char)0x00

  3. #define ADC_Chanel1 (unsigned char)0x01

  4. #define ADC_Chanel2 (unsigned char)0x02

  5. #define ADC_Chanel3 (unsigned char)0x03

  6. #define ADC_Chanel4 (unsigned char)0x04

  7. #define ADC_Chanel5 (unsigned char)0x05

  8. #define ADC_Chanel6 (unsigned char)0x06

  9. #define ADC_Chanel7 (unsigned char)0x07

  10. //*************************************

  11. // 函数名称:Init_AD

  12. // 函数功能:对AD初始化,开启或关闭ADC电路

  13. // 入口参数:ADC电路使能参数

  14. // 出口参数:无

  15. /***************************************/

  16. void Init_AD(uint8 Mode)

  17. {

  18. uint16 i  ;

  19. if(Mode == ENB) //启动ADC电路

  20. {

  21. // F/4 转换时间分频  Fadc = Fmaster/ADC_CR1[4..6]

  22. // [000 F/2]  [001 F/3]  [010 F/4]

  23. ADC_CR1 = (ADC_CR1 & 0X8F) | 0X00 ;   //f/2

  24. // 数据左对齐

  25. ADC_CR2 &=  ~0X08 ;

  26. // 启动ADC

  27. ADC_CR1 |= 0X01 ;

  28. // 等待AD电路稳定

  29. for(i=0;i<500;i++) ;

  30. ADC_CSR &= ~0X80 ; //转换结束标志清0

  31. return ;

  32. }

  33. else

  34. {

  35. ADC_CR1 &= ~0X01; //关闭ADC电路

  36. return ;

  37. }

  38. }

  39. //*************************************

  40. // 函数名称:AdcSwitch

  41. // 函数功能: 在单通道模式下转换某一通道的AD值

  42. // 在(扫描模式下)连续转化1-Chanel的AD值

  43. // 入口参数:要转换的AD通道号

  44. // 出口参数:无

  45. /***************************************/

  46. void AdcSwitch(uint8 Chanel)

  47. {

  48. //选择转换通道

  49. ADC_CSR = (ADC_CSR & 0XF0) | Chanel;

  50. // 启动ADC

  51. ADC_CR1 |= 0X01 ;

  52. //等待转换

  53. while(!(ADC_CSR & 0X80));

  54. ADC_CSR &= ~0X80 ;

  55. return ;

  56. }

  57. //*************************************

  58. // 函数名称:Adc_Mode_Scan

  59. // 函数功能: ADC扫描模式设置函数

  60. // 入口参数:扫描模式开启参数

  61. // 出口参数:无

  62. /***************************************/

  63. void Adc_Mode_Scan(uint8 Value)

  64. {

  65. if(Value == ENB)

  66. {

  67. ADC_CR2 |=  0X02 ;

  68. }

  69. else

  70. {

  71. ADC_CR2 &=  ~0X02 ;

  72. }

  73. }

  74. //---应用实例-----

  75. //ADC初始化设置

  76. Init_AD(ENB); //初始化ADC电路并开启电路

  77. // Adc_Mode_Scan(OFF) ;//ADC扫描模式使能

  78. //ADC 转换

  79. AdcSwitch(ADC_Chanel3) ;//转换通道3

  80. TmpH = ADC_DRH ; //取转换结果

  81. TmpL = ADC_DRL ;


推荐阅读

史海拾趣

Exar公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,Exar公司始终坚持以创新为核心竞争力。公司不断投入研发资金,加强技术创新和产品研发力度,推出了一系列具有自主知识产权的新产品。同时,Exar还积极关注行业发展趋势和市场动态,不断调整和优化产品线,以适应市场的变化和发展。在未来,Exar将继续坚持创新驱动的发展战略,努力成为电子行业的领军企业。

请注意,以上故事框架仅供参考,具体的故事内容需要根据实际情况进行补充和完善。

Corsair Electrical Connectors Inc公司的发展小趣事

在国内市场取得一定成绩后,Corsair开始将目光投向了更广阔的国际市场。公司积极参加国际电子展会,与海外客户建立联系,拓展销售渠道。同时,Corsair还根据不同国家和地区的市场需求,调整产品策略,提供定制化的解决方案。这些努力使得Corsair的产品逐渐走进了国际市场,公司的影响力也不断扩大。

北京人民电器厂公司的发展小趣事

为了加强技术研发和创新能力,北京人民电器建立了北京市级技术研究中心,并吸引了教授级高工、博士后、博士、硕士等多层次的专业技术人才。这些人才为公司的新产品研发、技术创新提供了强大的智力支持,使得北京人民电器在激烈的市场竞争中始终保持领先地位。

复旦微电子(FM)公司的发展小趣事

北京人民电器厂有限公司,作为北方地区最大的低压电器制造企业,于1995年成功研发出全球首台高分断微型直流断路器。这一创新成果不仅填补了国内空白,更在国际上展现了中国在低压电器领域的研发实力。该断路器的诞生,标志着北京人民电器在直流断路器技术领域迈出了坚实的一步,为后续的产品研发和市场拓展奠定了坚实的基础。

Elite Enterprises (H K) Co Ltd公司的发展小趣事

在产品质量得到市场认可后,Elite Enterprises开始积极拓展国内外市场。公司参加了多个国际性的电子展会,展示了其高品质的LED产品,并成功吸引了众多客户的关注。同时,公司还加强了品牌建设,通过广告宣传和口碑传播等方式提高了品牌知名度和美誉度。

Danube Enterprise Co Ltd公司的发展小趣事

Danube Enterprise Co Ltd成立于XX世纪初,最初是一家小型电子产品代工厂。公司的创始人张三是一位热衷于电子技术的工程师,他带领几个志同道合的伙伴,凭借对技术的热情和对市场的敏锐洞察,开始研发具有创新功能的电子产品。他们推出了首款自主研发的智能手机配件——一款具有长续航能力的智能移动电源,凭借其独特的设计和出色的性能,迅速在市场上获得了一席之地。这一成功让Danube意识到技术创新的重要性,也奠定了公司未来发展的基石。

问答坊 | AI 解惑

继电器的编程,请大家帮忙呀

   请大家指点指点呀,不胜感激        要求是继电器输出低电平时报警, 由于有8个继电器所以必须知道是哪个报警,(下边只写了2个) 报警时都在P2.7口输出 ALARM  CLR  P2.7     ...…

查看全部问答>

TMS320LF2407A矢量控制变频器的开发经验

TMS320LF2407A矢量控制变频器的开发经验…

查看全部问答>

9263中WINCE屏驱动怎么做

买了一个微控VC9263-EK开发板,带了一个3.5寸的竖屏,但我现在要换用别的屏,应该怎样修改屏的驱动的呢?…

查看全部问答>

CE6.0编译出错问题

我是将BSP包中的LCD显示部分文件全部拷到另一个目录下,然后在那个目录下的一个文件里面包含了个头文件(这个头文件在那个LCD显示文件中有定义的),也更改了source文件路径的,然后编译出现一大堆错误。sysgen了也不行的。请问是什么原因? …

查看全部问答>

jrtplib 发送的数据好像收不到?

我使用2440+wince5与PC通过jrtplib通信,现在发现pc可以发送数据到网络,但是wince方面好像不行,抓包发现icmp:port unreachable, 是不是port被占用了呢?而且icmp、udp、tcp刚好是占用同一个字节(指定网络包协议),会不会是字节顺序问题?但 ...…

查看全部问答>

●●高分求教用RDA同步SQL CE 2.0同SQL Server 2000数据的问题●●

用RDA的Pull方法的时候报错: IIS 错误 405 HTTP_STATUS_BAD_METHOD:不允许所使用的HTTP谓词。 --------------------------------------------------------------------- //我的代码 SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); ...…

查看全部问答>

wince串口不能工作

我的pxa270开发版有4个串口(uart0~uart3),其中uart0用来和超级终端连接打印调试信息,下载了ce5.0。用evc编写的串口程序,打开了COM0:设置好了波特率等后writefile成功,但是不知为什么pc这边无法接收到信息,pc这边发送信息开发版也无法受到。 ...…

查看全部问答>

实现低功耗有哪些常用方法

我在做一个智能电子体温计,要求实现低功耗,系统电流小于0.3毫安。不能用贴片元件,我知道的方法就是所有三极管全用mos管,还有其他方法么?!…

查看全部问答>

用C# 开发mc 1000 应用程序

mc 1000 怎么开启CODE128码,项屏蔽其它码制,如:EAN码等 …

查看全部问答>