C语言
---牧马人---
来了就是客人,一杯茶饮少不了
展开
-
STM32之如何将时钟脉冲映射到IO输出
写在前面有时为了验证晶振的精度,一种方式就是直接测量晶振的引脚的脉冲频率,这种方式的成本和测试条件都比较高,另一种方式就是经过单片机处理后经普通IO口输出,这种方式只要有普通的频率计或者示波器即可验证。测试MCU:STM32F030C8T6原理分析:STM32F030C8T6或其他系列的单片机有一个功能叫MCO: Microcontroller clock output,可以将以下时钟输出到特定的GPIOA->Pin8:详见stm32f0xx_rcc.h的RCC_MCO_Clock_Sourc.原创 2020-05-14 10:55:57 · 2842 阅读 · 0 评论 -
射频功率单位转换
写在前面射频功率的单位表示方式:1、dBm,m表示毫瓦特,2、dbw,w表示瓦特,3、w,4、mw。下面以dBm与mw之间的互换。已知mw,兑换成dBm时,两者成自然对数关系,即以10为底的对数关系,数学表达式:dBm = 10*log10(mw)。已知dBm,兑换成mw时,两者成自然对数的反函数关系,即10底的指数函数关系,数学表达式:mW = 10^(dbm/10)。转换公式软件实...原创 2020-04-10 00:59:25 · 1580 阅读 · 0 评论 -
CRC循环冗余校验
文章目录写在前面多项式初始值C语言软件公式实现写在前面CRC是一种差错检测方式之一,可以有效解决设备之间数据传输期间数据出错的检测,基本原理是通过一个多项式与数据进行除法和取余的方式计算。CRC的种类很多,每个厂商定义的多项式和CRC的初始值也不尽相同名称多项式(Polynomial)表示法应用举例CRC-8X8+X2+X1+10X107CRC-12...原创 2020-03-11 11:13:36 · 375 阅读 · 0 评论 -
C语言那些事之指针操作
一个函数如果要返回一个数组,这个数组最好不要定义成局部变量,因为局部变量传过去后,该地址的内容有可能会发生变化,所以只能定义全局变量数组作为返回参数。定义的指针变量,该变量只能被调用或传入地址,不能进行内容操作,否则会奔溃,在stm32中会跑入错误中断中。贴一个最近写的字符串操作的函数:.c文件/** * Created by QiPing on 2018/7/20 * D...原创 2018-07-20 15:34:35 · 193 阅读 · 0 评论 -
C语言那些事之函数库的使用
dfsdfsdf原创 2019-03-26 14:42:09 · 197 阅读 · 0 评论 -
C语言那些事之脉冲丢包率检测
业务实现比较简单,具体看注释。#include "pluseCheck.h"#include "gpio.h"unsigned long totalCNt; //总的脉冲计数器unsigned long pluseCNt; //占空比大约为50%的脉冲计数器/** * * 根据脉冲的周期设置调用周期 * 最好是放在定时器中断中*/void checkPluseP...原创 2019-04-04 18:15:55 · 738 阅读 · 0 评论 -
C语言那些事之如何自定义函数变量
写在前面可用于事件回调,使软件封装隐秘性更强一、定义函数变量类型typedef void (*MyUart_callBack)(void *buf, size_t count);说明:MyUart_callBack为变量类型名称,类似int或者char变量类型void *buf, size_t count为函数传参二、实例以串口的使用举例底层封装static MyUar...原创 2019-07-10 14:23:08 · 1618 阅读 · 0 评论 -
C语言那些事之字符串操作
一、字符串多行书写有时为了书写阅读方便,需要将一大串的字符串写成多行举例源码 MyUart_Printf("moduleConfigParams=>\r\n"\ "\tuartBaudrate:%s\r\n"\ "\tuartStopbit:%s\r\n"\ "\tparityType:%s\r\n"\ "\trfC...原创 2019-07-17 15:51:07 · 216 阅读 · 0 评论