如何用MCU CW32在数字电压电流表中实现串口蓝牙发送?

2024-06-25 武汉芯源 微信公众号
MCU,CW32,武汉芯源 MCU,CW32,武汉芯源 MCU,CW32,武汉芯源 MCU,CW32,武汉芯源

7.1.串口基础知识

7.1.1.串口介绍

串行接口简称串口,也称串行通信接口或串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。


7.1.2.串口通信参数介绍

波特率:衡量通信速度的参数,它表示每秒钟传送的bit的个数。

数据位:衡量通信中实际数据位的参数,表示一个信息包里包含的数据位的个数。

停止位:用于表示单个信息包的最后位,典型值为1、1.5和2位。由于数据是在传输线上传输的,每个设备都有自己的时钟,很有可能在通信过程中出现不同步,停止位不仅仅表示传输的结束,还能提供校正时钟同步的机会。停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率也越慢。

奇偶检验位:表示一种简单的检查错误的方式。关于更为详细的介绍请搜索百度。


7.1.3.串口工作模式

串口可以工作在单工、半双工和全双工模式下。

单工:在通信的任意时刻,信息只能由A传到B。

半双工:在通信的任意时刻,信息即可由A传到B,又能由B传到A,但同时只能有一个方向上的传输存在。

全双工:在通信的任意时刻,通信线路上存在A到B和B到A的双向信号传输。


7.1.4.串口通信协议

串口在进行通信的时候会按照数据包的形式进行发送,帧格式如图1-4-1所示

串口通信是一位一位地传输,每传输一个字节总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平),后面由8位数据位组成,如果开启了校验位,则最后一位数据位是校验位,最后是停止位。停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。


7.2.串口蓝牙接线原理图

在数字电压电流表上默认使用的串口是串口2,接口为CW_UART2_TX和CW_UART2_RX。关于串口和蓝牙连接原理图如图9-2所示。

使用蓝牙模块KT6368将信息发送出去,只需要调用CW32的UART_2将信息传输至蓝牙模块即可。


7.3.串口驱动流程

串口驱动有以下几个流程:配置CW32时钟树,配置UART_2串口,调用串口打印信息。通过查看上文的CW32时钟树可知,串口2挂载在高级外设时钟 PCLK上,而此前的时钟配置已将PCLK配置成了6MHz。具体的配置函数如下:

void Uart2_Init(void)
{        
    //外设时钟使能
    RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOA, ENABLE);      //使能串口要用到的GPIO时钟
    RCC_APBPeriphClk_Enable1(RCC_APB1_PERIPH_UART2, ENABLE);    //使能串口时钟
    
    GPIO_InitTypeDef GPIO_InitStructure;                        //GPIO初始化
    GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_InitStructure.Pins =  GPIO_PIN_7;
    GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
    PA07_AFx_UART2RXD();
        
    GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_InitStructure.Pins = GPIO_PIN_6;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
    PA06_AFx_UART2TXD();
  
    USART_InitTypeDef USART_InitStructure;                       //串口初始化
    USART_InitStructure.USART_BaudRate = 115200;                 //设置波特率
    USART_InitStructure.USART_Over = USART_Over_16;              //串口采样方式
    USART_InitStructure.USART_Source = USART_Source_PCLK;        //串口传输时钟源采用PCLK
    USART_InitStructure.USART_UclkFreq = RCC_Sysctrl_GetPClkFreq();  //频率为PCLK的频率
    USART_InitStructure.USART_StartBit = USART_StartBit_FE;      //数据开始位
    USART_InitStructure.USART_StopBits = USART_StopBits_1;       //数据停止位
    USART_InitStructure.USART_Parity = USART_Parity_No ;         //无校验
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件流控
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  //发送/接收使能
    USART_Init(CW_UART2, &USART_InitStructure);
}


在完成串口的配置后,还需要写一个串口发送函数

void USART_SendString(UART_TypeDef *USARTx, char *String)
{
    while (*String != '\0')     //\0表示没有数据
    {
        USART_SendData_8bit(USARTx, *String);   //发送一位8bit数据
        while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);  //发送缓冲器未空则等待
        String++;              //发送一次完成后,准备发送下一位数据
    }
    while (USART_GetFlagStatus(USARTx, USART_FLAG_TXBUSY) == SET);     //发送串口状态忙则等待  
}


由于定时器中断为1ms,而串口发送占用的时间较长,所以我们1000ms使用蓝牙发送一次信息,这里的写法并未使用定时器。

char data_reg[24];    //定义数组,用于数据打印
uint32_t Ble_Time=0;  //1000ms计时变量
while(1)              //main函数里的while循环
    {
      if(GetTick() >= (Ble_Time + 1000))     //如果此时的时间大于上一次的1000ms
        {
          Ble_Time = GetTick();              //记录此刻时间
          Volt_Cal();                        //电压计算
          sprintf(data_reg,"volt=%u\r\n",Cal_Buffer);  //打印数据
          USART_SendString(CW_UART2,data_reg);         //调用串口上传数据给蓝牙
        }
    }


注意 GetTick() 函数定义在头文件 cw32f003_systick.h 中,而此函数要使用到系统时钟中断,所以还需要配置系统时钟中断:

InitTick(48000000);                // SYSTICK 的工作频率为48MHz,每ms中断一次

  

最终可以收到蓝牙传递的数据:

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由微电子Chensir转载自武汉芯源 微信公众号,原文标题为:CW32数字电压电流表软件教程-实验六:串口蓝牙发送,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】武汉芯源CW32系列MCU PWM输出功能指南

脉冲宽度调制(PWM),是在数字电路中达到模拟输出效果的一种手段,常见应用电机调速,照明灯调光等。在MCU中,主要通过定时器单元来时实现PWM输出,以CW32L083VxTx为例,LPTIM,GTIM,ATIM都可以输出PWM信号。

设计经验    发布时间 : 2023-02-23

ESD测试是什么?武汉芯源的CW32能扛8000V?

ESD测试是确保电子设备在静电放电环境下稳定运行的重要手段之一。通过不断完善测试标准和规范、采用先进的测试设备和技术、加强测试人员的培训和管理等措施,可以进一步提高测试结果的准确性和可靠性。

设计经验    发布时间 : 2024-08-21

【经验】武汉芯源CW32系列MCU芯片低功耗模式的特性介绍

武汉芯源CW32系列芯片支持3种工作模式,运行模式、休眠模式以及深度休眠模式,本文以CW32L083为例介绍低功耗模式的特性。

设计经验    发布时间 : 2023-01-03

【应用】基于CW32L系列MCU的指夹式血氧仪,实现更高精度测量

主控芯片建议使用CW32F003(20pin)资源足够,还便宜。CW32抗干扰性能可轻松通过ESD 8KV认证,加之优秀的ADC性能,是血氧仪类产品的不二之选

应用方案    发布时间 : 2023-09-07

【经验】芯源CW32系列MCU电容式触摸按键设计指南

芯源半导体的CW32系列MCU电容式触摸按键设计指南向客户提供利用CW32内部资源结合软件编程实现电容式触摸按键有效触摸检测的方法。本指南内容重点在于工作原理、软件检测过程以及调试指引。通过本文可了解到如何利用内置电压比较器和内置定时器及软件配合,实现灵活方便的按键检测。在介绍标准演示板和演示软件的性能参数同时,还会给出详细的调试建议以及设计参数选择倾向分析,帮助客户快速自信地完成设计并实施调试。

设计经验    发布时间 : 2023-07-27

持续奋进,快速完善自有32位超低功耗MCU产品阵容

7月25日,2024全球MCU生态发展大会在深圳隆重召开,武汉芯源半导体在现场为电子行业参观者展示了多款MCU典型应用方案。,武汉芯源半导体技术总监张亚凡发表了主题演讲《持续奋进,快速完善自有32位超低功耗MCU产品阵容》,在宏观方面展示现有产品布局和未来产品计划,在微观方面展示产品外设细节功能的改进。

厂牌及品类    发布时间 : 2024-08-16

武汉芯源CW32系列荣获“2023年度最佳MCU芯片奖”,众多产品应用在慕尼黑华南电子展精彩亮相!

武汉芯源半导体展示了CW32众多产品应用,比如智能指纹锁、智能燃气表、LED调光板、可燃气体探测器、料位开关、温控器、无线麦克风、筋膜枪、血氧仪、以太网模块、无刷电机等多款MCU典型应用方案,吸引众多用户驻足参观了解。

厂牌及品类    发布时间 : 2023-11-03

【经验】解析武汉芯源半导体MCU CW32L083模拟电压比较器的使用方法

武汉芯源半导体MCU CW32L083内部集成2个模拟电压比较器(VC),用于比较两路模拟输入电压,并将比较结果从引脚输出。本文中将为大家解析武汉芯源半导体MCU CW32L083模拟电压比较器的使用方法。

设计经验    发布时间 : 2022-12-21

CW32携手生态伙伴举行乐清线下交流会,解读MCU更多信息,诠释CW32超强特性及生态资源

低功耗、高性能以及高可靠性正在成为嵌入式MCU的核心竞争力。2024年,武汉芯源半导体不断突破产品性能及应用边界,持续为用户提供负责任的好产品,并积极为客户高效赋能。8月15日,CW32携手生态伙伴将会在乐清与大家深入交流。武汉芯源半导体部门领导、市场大咖、资深技术专家将空降现场,为大家解读MCU更多信息,诠释CW32超强特性及生态资源等,并结合方案Demo,解析CW32的应用优势。

厂牌及品类    发布时间 : 2024-08-14

【产品】武汉芯源CW32L083系列MCU中断系统介绍

本文针对武汉芯源CW32L083系列MCU,同系列产品亦可参考。ARM® Cortex®-M0+内核的嵌套向量中断控制器(NVIC),用于管理中断和异常。NVIC和处理器内核紧密相连,可以实现低延迟的异常和中断处理。

产品    发布时间 : 2022-12-02

【经验】基于CW32如何实现PID温度控制

PID温控系统是一种常用的控制系统,用于实现对温度变量的精确控制。PID算法根据当前的温度误差以及误差的变化率,计算一个控制信号,用于调节加热器的输出。本文介绍的实验用到了CW32-48大学计划开发板OK、温控实验模块及Keil5开发环境。

设计经验    发布时间 : 2023-08-17

使用通用串口模块下载CW32F030芯片的方法

在常见的客户技术支持中,常有需要串口下载CW32芯片的问题,现整理一份文档供参考。

设计经验    发布时间 : 2024-07-20

【应用】武汉芯源MCU CW32F030用于可燃气体探测器,内置12位ADC,具备高可靠强抗静电性

可燃气体探测器采用武汉芯源的CW32F030C8T6作为主控芯片,主要是基于CW32F030C8T6高精度的ADC,转换速度快,高可靠强抗静电,强抗干扰等特点,为系统提供了很好的保护功能,能确保系统能在恶劣的电磁干扰环境下安全运行。

应用方案    发布时间 : 2022-09-28

【技术】一文介绍使用CW32系列MCU实现电池备份(VBAT)功能

本文档介绍了如何基于CW32系列MCU,通过增加简单的外部电路配合软件实现VBAT功能,在系统电源掉电后仍能保持RTC时钟正常计时,以及如何降低系统功耗,从而延长后备电池的使用寿命。

技术探讨    发布时间 : 2023-09-14

CW32L031 ARM® Cortex®-M0+ Low-power 32-bit MCU Reference Manual

型号- CW32L031,CW32L031C8T6-LQFP48,CW32L031 SERIES

用户指南  -  武汉芯源  - Rev 1.0  - May 18, 2023 PDF 英文 下载 查看更多版本

展开更多

电子商城

查看更多

只看有货

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥5.6500

现货: 300,000

品牌:武汉芯源

品类:MCU

价格:

现货: 200,000

品牌:武汉芯源

品类:MCU

价格:

现货: 100,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:恒烁

品类:MCU

价格:¥1.0800

现货:154,600

品牌:RENESAS

品类:MCU

价格:¥15.6605

现货:140,156

品牌:ST

品类:单片机(MCU)

价格:¥14.2871

现货:114,259

品牌:MICROCHIP

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:MICROCHIP

品类:MCU

价格:¥9.0000

现货:64,841

品牌:Sonix

品类:MCU

价格:¥0.8500

现货:51,104

品牌:ST

品类:MCU

价格:¥6.5000

现货:51,000

品牌:MICROCHIP

品类:MCU

价格:¥5.7360

现货:50,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

MCU烧录/Flash烧录/CPLD烧录

可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。

最小起订量: 1pcs 提交需求>

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面