当前位置: 首页 > news >正文

种植园网站模板动画小视频制作神器

种植园网站模板,动画小视频制作神器,建设企业网站得花多少钱,php框架做网站好处先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟…

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟共地导致的.

在这里插入图片描述

最早用的是SPI串行协议, 结果发现最高读取速度有限, 无法发挥AD7606的性能, 即使AD7606能转换及时, 数据传输也不及时. 于是改成了并口. 所以要想充分发货AD7606的性能一定要用并口.并口读取数据要使用单片机上的FSMC接口. 这个挺好的. 速度非常快, 使用非常简单.

引脚使用情况如下,
我用的是STM32F407IGT6

/** FSMC GPIO Configuration
PF0 ------> FSMC_A0 //没啥用,但是必须得占用.
PE7 ------> FSMC_D4
PE8 ------> FSMC_D5
PE9 ------> FSMC_D6
PE10 ------> FSMC_D7
PE11 ------> FSMC_D8
PE12 ------> FSMC_D9
PE13 ------> FSMC_D10
PE14 ------> FSMC_D11
PE15 ------> FSMC_D12
PD8 ------> FSMC_D13
PD9 ------> FSMC_D14
PD10 ------> FSMC_D15
PD14 ------> FSMC_D0
PD15 ------> FSMC_D1
PD0 ------> FSMC_D2
PD1 ------> FSMC_D3
PD4 ------> FSMC_NOE //接AD7606的RD
PD5 ------> FSMC_NWE//没啥用
PG9 ------> FSMC_NE2 //接AD7606的CS
PE0 ------> FSMC_NBL0//没啥用
PE1 ------> FSMC_NBL1 //没啥用
*/

在这里插入图片描述
在这里插入图片描述
另外几个引脚的配置如下
在这里插入图片描述
还有一个引脚如下.这个是触发转换的ADC的采样时钟.连接AD7606的ConvertA和ConvertB 两个脚并联.
在这里插入图片描述
总的来说. AD7606也挺简单的

  1. ConverA,和ConvertB是采样时钟信号.负责触发采样.
  2. OS0,OS1,OS2 负责设置过采样
  3. BUSY负责通知单片机,数据已采样完毕, (最好是在下降沿时触发,转换结束时此引脚变成低电位)
  4. RANGE引脚负责设置测量量程, ±5或者±10V
  5. RD 是读数据的时钟信号
  6. CS 负责片选信号, 可以将RD和CS短接. 同时触发.

工作过程是
ConvertA和ConvertB在定时器下,持续输出采样时钟.保持合理的采样率.
波形频率要稳定.采用软件触发的形式肯定是不合理的. 频率最高不能超 过200KHZ.
当AD7606转换完成时会将BUSY引脚拉低, 单片机在接收到BUSY的下降沿外部中断触发时, 用软件读取内存中的数据到自定义变量中.代码如下

 /*** @brief This function handles EXTI line2 interrupt.* 需要注释掉stm32F4xx_it.c中的同名函数*/
void EXTI2_IRQHandler(void)
{ if(__HAL_GPIO_EXTI_GET_IT(AD7606_BUSY_Pin) != RESET){AD7606_Read8ChAdc();__HAL_GPIO_EXTI_CLEAR_IT(AD7606_BUSY_Pin); } }//#define AD7606_ReadOneChannelData() *(__IO uint16_t *)0x60000000    //Bank1
#define AD7606_ReadOneChannelData() *(__IO uint16_t *)0x64000000      //Bank2 使用的PG9/FSMC_NE2引脚.
//#define AD7606_ReadOneChannelData() *(__IO uint16_t *)0x68000000    //Bank3
//#define AD7606_ReadOneChannelData() *(__IO uint16_t *)0x6C000000    //Bank4void AD7606_Read8ChAdc(void)
{  AdcValues[0] = AD7606_ReadOneChannelData(); /* 读第1路样本 */  AdcValues[1] = AD7606_ReadOneChannelData(); /* 读第2路样本 */AdcValues[2] = AD7606_ReadOneChannelData(); /* 读第3路样本 */AdcValues[3] = AD7606_ReadOneChannelData(); /* 读第4路样本 */AdcValues[4] = AD7606_ReadOneChannelData(); /* 读第5路样本 */AdcValues[5] = AD7606_ReadOneChannelData(); /* 读第6路样本 */AdcValues[6] = AD7606_ReadOneChannelData(); /* 读第7路样本 */AdcValues[7] = AD7606_ReadOneChannelData(); /* 读第8路样本 */ 
}

代码中 AD7606_ReadOneChannelData(); 是一个宏,实际上是指向的一个内存地址, 这个内存地址是FSMC指定的地址. 使用FSMC接口, 可免于控制引脚, 直接读取某个地址即可, FSMC会自动产生操作时序. 具体请见FSMC相关知识.

关键要素之一
一定要在中断函数中判断中断状态,
在 __HAL_GPIO_EXTI_GET_IT() 和__HAL_GPIO_EXTI_CLEAR_IT()之间 进行读取转换数据.

另外, FRST引脚总是不正确, 所以不要使用它 .

最后,
数据太多, 通过接口发到上位机, 再处理, 是个非常糟糕的做法.
最好的做法是在单片机上进行计算, 再把计算结果发到上位机.

在这里插入图片描述

http://www.yayakq.cn/news/378598/

相关文章:

  • 重庆免费网站推广软件网络营销五个主要手段
  • 如何做网站平台单位做网站需要准备什么
  • 四川星星建设集团有限公司网站深圳西乡做网站
  • asp网站跳转浏览器推广策略包括哪些内容
  • 江苏建设工程安全监督网站seo建设者
  • 网站开发主管工作内容做视频剪辑接私活的网站
  • 东宁做木耳招工人网站做初中物理题目的网站
  • 西安seo网站建设整站优化全网营销
  • 建设网站需要什么资料园区网络设计
  • wordpress网站安全性百度搜索榜单
  • 做网站必须知道的问题江苏省交通厅门户网站建设管理办法
  • 俄罗斯网站后缀龙海市城乡规划建设局网站
  • 动漫网站建设目的用J2ee怎么做视频网站
  • unn建站新网站怎么做seo优化
  • 自己的网站怎么做跳转佛山从事网站建设
  • vpn免流网站建设dedecms 网站迁移
  • 做视频网站资源采集最近发生的新闻大事
  • 中国企业网站开发怎么创办网站
  • 无锡网站开发网站如何做京东联盟
  • 网站的后缀名app和网站开发的成本
  • 利于seo的建站系统有哪些做dj音叉网站平台
  • 做网站需要参考书目书太原房产网站建设
  • 千龙网站建设wordpress 3.1 下载地址
  • 成都网站排名生客seo深圳网络优化公司
  • 沧州市网站龙海市邦策网站建设平台
  • 做网站的励志故事WordPress主题设置数据库
  • 拟定网站优化方案中煤第三建设集团网站
  • o2o网站建设怎么样网站建设 ui 企业网站
  • 怎么在濮阳网站做宣传腾讯企业邮箱手机号登录入口
  • 兴平市住房和城乡建设局门户网站东莞寮步二手车交易市场