IM1281B单相交流计量模块使用讲解

最近买了一个单向交流计量模块(https://download.csdn.net/download/weixin_43205178/11472943)![在这里插入图片描述]在这里插入图片描述这个模块实现通过自带的电脑串口通信,显示在限免如下形式 在这里插入图片描述艾锐达公司出品的计量模块!淘宝客服只提供一个资料,之前也没写过接口函数,在几年前接受叶老师的指导接口出来了。感谢老师!
特地把程序贴出来!!!


```c
#include “delay.h”
#include “usart3.h”
#include “stdarg.h”
#include “usart.h”
#include “stdio.h”
#include “string.h”
#include “WIFI8266.h”
#include “led.h”
#include “usart3.h”
u8 USART3_RX_BUF[USART3_MAX_RECV_LEN];
u8 USART3_TX_BUF[USART3_MAX_SEND_LEN];
unsigned char Read_ID = 0x01;
unsigned char Tx_Buffer1[8];
unsigned char Rx_Buffer1[40];
unsigned char Rx_Buffer[40];
int receive_finished;
unsigned long Voltage_data, Current_data, Power_data, Energy_data, Pf_data, CO2_data, HZ;
int i = 8; //此次发送数据的长度
int j = 0;
float Pf_data1, HZ1;
int read_enable = 0;
int reveive_numbe = 0;
vu16 USART3_RX_STA = 0;
//中断服务函数    之前找用串口发送数据的程序自己带的函数
void USART3_IRQHandler(void)
{
	char Res;
	if (USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
	{
		USART_ClearITPendingBit(USART3, USART_IT_RXNE);
		Res = USART_ReceiveData(USART3);
		if (USART3_RX_STA < USART3_MAX_RECV_LEN) //接收的字符串
		{
			Rx_Buffer1[USART3_RX_STA] = Res;
			USART3_RX_STA++;
		}
	}

	if (USART_GetITStatus(USART3, USART_IT_IDLE) != SET)
	{
		receive_finished = 1;   		                   // 这个自动的发送的重点啊   这个IF利用的是空闲中断,在收完数据后自动发送
		USART_ClearITPendingBit(USART3, USART_IT_IDLE);
	}
	USART3->SR;
	USART3->DR;
}
//这个是计算C
  • 21
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良心不痛吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值