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

织梦 网站复制windows优化软件

织梦 网站复制,windows优化软件,阿里巴巴官网下载手机版,网页和网站的联系【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程 XTAL_EN接地,CLK_CFG的两个引脚由同一个GPIO控制 初始时HART_CLK_CFG输出低电平 由RTS引脚控制调制/解调。当RTS处于高电平时,为解调(输入);否则为调…

【嵌入式硬件芯片开发笔记】HART协议调制解调芯片AD5700配置流程
在这里插入图片描述

XTAL_EN接地,CLK_CFG的两个引脚由同一个GPIO控制
初始时HART_CLK_CFG输出低电平

由RTS引脚控制调制/解调。当RTS处于高电平时,为解调(输入);否则为调制(输出)。切换时,延时1ms

HART协议部分,符合HART物理层要求(修订版8.1)。
一个标准UART帧,该帧包含一个起始位、8位数据、一个奇偶校验和一个停止位
UART:1200波特率 1停止位 无校验 数据长度8
开始运行

  1. 检测HART_VDD,至少大于2.7V
  2. 引脚HART_CLK_CFG初始时为低电平,拉高后CLKOUT输出1.2288MHz,用定时器进行捕获,计算频率是否达标
  3. 最后开启调制或解调
    初始化
  4. 使能CFG引脚,进行时钟检测
  5. 采用定时器捕获的方式计算频率(计算速度不够则可能算不准)
  6. 关闭CFG引脚
  7. 解调模式接收数据
  8. 当串口接收中断发生时,解析命令并切换调制模式,返回数据

代码例程

uint8_t UART4_RxBuffer[256]={0};
uint8_t UART4_RxFlag=0;

在这里插入图片描述
在这里插入图片描述

/*** @brief UART4 Initialization Function* @param None* @retval None*/
static void MX_UART4_Init(void)
{/* USER CODE BEGIN UART4_Init 0 *//* USER CODE END UART4_Init 0 *//* USER CODE BEGIN UART4_Init 1 *//* USER CODE END UART4_Init 1 */huart4.Instance = UART4;huart4.Init.BaudRate = 1200;huart4.Init.WordLength = UART_WORDLENGTH_8B;huart4.Init.StopBits = UART_STOPBITS_1;huart4.Init.Parity = UART_PARITY_NONE;huart4.Init.Mode = UART_MODE_TX_RX;huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart4.Init.OverSampling = UART_OVERSAMPLING_16;huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;if (HAL_UART_Init(&huart4) != HAL_OK){Error_Handler();}/* USER CODE BEGIN UART4_Init 2 */HAL_UART_Receive_IT(&huart4,UART4_RxBuffer,1);/* USER CODE END UART4_Init 2 */}
/*!* @brief       	初始化AD5421** @param 				None** @return				None*/
void Init_AD5421(void)
{	uint16_t offset = 0;uint16_t gain = 0;Ctrl_AD5421(&hspi2,AD5421_RESET,0,true);delay_us(50);Ctrl_AD5421(&hspi2,AD5421_Control,0xFC00,true);	offset = Ctrl_AD5421(&hspi2,AD5421_Offset_Adjust,0,false);	gain = Ctrl_AD5421(&hspi2,AD5421_Gain_Adjust,0,false);Ctrl_AD5421_DAC(20,true,offset,gain);Ctrl_AD5421_ADC(1,true);Ctrl_AD5421_ADC(0,true);
}/*!* @brief       	使能HART_CLK_OUT的定时器,用于输入捕获,上升沿捕获,4次有效** @param 				None** @return				freq: 浮点型频率变量,单位为Hz*/
float Get_HART_CLK_Cycle(void)
{uint32_t Count=0;float freq=0;TIM3_CH2_Flag=0;TIM3_CH2_Overflow=0;TIM3_CH2_Count[0]=0;TIM3_CH2_Count[1]=0;	TIM_RESET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_2);	__HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_2, TIM_INPUTCHANNELPOLARITY_FALLING);	HAL_TIM_Base_Start_IT(&htim3);HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_2);while(TIM3_CH2_Flag<2);TIM3_CH2_Flag=0;Count=TIM3_CH2_Overflow*(0xFFFF+1)+TIM3_CH2_Count[1]-TIM3_CH2_Count[0];	freq=50000000.0f/Count;TIM3_CH2_Overflow=0;TIM3_CH2_Count[0]=0;TIM3_CH2_Count[1]=0;printf("[INFO] HART_CLK: %0.4f Hz\n",freq);return freq;
}/*!* @brief       	操作AD5700的HART调制/解调** @param 	[in]	dat_buf: 要写入的数据,可以填NULL*         	[in]	size: 要写入的数据个数,单位byte*        	[in]	WriteNotRead: true,写入(调制),发送UART数据然后通过HART发出来*  							false,读取(解调),接收HART数据,解调以后以中断的方式接收UART数据** @return				None*/
void Ctrl_AD5700_HART(uint8_t *dat_buf,uint8_t size,bool WriteNotRead)
{if(WriteNotRead){Disable_AD5700_RTS;delay_ms(1);HAL_UART_Transmit(&huart4,dat_buf,size,0xFFFF);}else{Enable_AD5700_RTS;delay_ms(1);HAL_UART_Receive_IT(&huart4,&UART4_RxBuffer[UART4_RxFlag],1);  //开启中断 填入的buf最好是HART专用的数据buf 全局变量 然后在回调里面也改成HART的buf}
}/*!* @brief       	初始化AD5700** @param 				None** @return				None*/
void Init_AD5700(void)
{//ADC检测	Enable_HART_CLK_CFG;
//	//时钟检测
//	Get_HART_CLK_Cycle();//	Disable_HART_CLK_CFG;Ctrl_AD5700_HART(NULL,0,false);
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart==&huart2){		HAL_UART_Transmit(&huart2,&RxBuffer,1,0xFFFF);HAL_UART_Receive_IT(&huart2,&RxBuffer,1);}else if(huart==&huart3){		HAL_UART_Transmit(&huart3,&RxBuffer,1,0xFFFF);HAL_UART_Receive_IT(&huart3,&RxBuffer,1);}else if(huart==&huart4){		
//		HAL_UART_Transmit(&huart4,&UART4_RxBuffer[UART4_RxFlag],1,0xFFFF);UART4_RxFlag++;HAL_UART_Receive_IT(&huart4,&UART4_RxBuffer[UART4_RxFlag],1);}else if(huart==&huart5){		HAL_UART_Transmit(&huart5,&RxBuffer,1,0xFFFF);if((RxBuffer>>5)==6){load_dac=(RxBuffer&0x1F);}HAL_UART_Receive_IT(&huart5,&RxBuffer,1);}
}
http://www.hkea.cn/news/576224/

相关文章:

  • 岳阳网站开发公司海淀区seo多少钱
  • 2017年做网站维护总结百度搜索软件
  • 南京网站建设公司点击器原理
  • 网站怎么编辑搜狗网站提交入口
  • 自建网站做外贸的流程广告推广方式
  • 警告欺骗网站模板免费注册
  • 获取网站访客信息seo分析师招聘
  • 制作网页的网站有哪些网站建设
  • 日本真人做爰无遮挡视频免费网站嘉兴关键词优化报价
  • 忻州市中小企业局网站贵州整站优化seo平台
  • 网页怎么制作超链接seo兼职接单平台
  • 网站建设中应注意哪些问题重庆整站seo
  • 贵阳网站建设哪家便宜微商软文范例大全100
  • 怎么在微信上做网站竞价交易
  • wordpress优化版4.7.4网站seo设计
  • 网上课程网站精准客户数据采集软件
  • 专业网站建设报价外呼系统电销
  • 网站建设公司价格差别seo还有哪些方面的优化
  • 哪家公司建造了迪士尼乐园关键词优化推广排名多少钱
  • 做教育的网站有哪些内容吗湖南网站营销推广
  • wordpress 跳过ftp搜索引擎排名优化方案
  • 360做的网站北京营销推广公司
  • 我国政府网站建设的趋势宁波seo公司排名榜
  • 高端网站建设,恩愉科技专业的seo搜索引擎优化培训
  • 跨境网站开发公司网站seo思路
  • 冠县网站建设活动推广方案
  • 鲜花培训网站建设网站推广要点
  • 情趣内衣怎么做网站如何制作网页
  • 网站交互技术百度推广登陆后台
  • 网站的推广和宣传方式各行业关键词