自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 485通讯只能发不能收

日常硬件调试问题

2022-08-18 17:52:15 2882 1

原创 C++学习1——引用与指针

引用:int i = 10;int &ri = i;引用必须被初始化。引用无法重新绑定到另一个对象。引用不是一个对象。它只是为一个已经存在的对象所起的另一个名字。、指针:int a = 10;int *p = &a;指针可以不被初始化。(未初始化的指针可能会引起程序错误)指针是一个对象,可以对其进行赋值和拷贝。定义空指针的方法、int *p1 = 0;int *p2 = nullptr;int *p3 = NULL;尽量使用nullptr定义空指针

2021-03-17 21:17:07 133

原创 STM32通过寄存器实现IO口取反

通过按位异或,写ODR寄存器,如:GPIOB->ODR ^= GPIO_Pin_5; //对PB5 IO口取反在官方给的固件库中,有#define GPIO_Pin_5 ((uint16_t)0x0020) /*!< Pin 5 selected */这样的宏定义,所以这样的异或操作保证只对PB5位对应的ODR寄存器上的位取反,其它位保持不变。(正点原子的教程源码里通过位带操作实现翻转,但个人感觉位带操作有点麻烦。)...

2020-12-02 10:54:40 6304 1

原创 C语音学习5——指针与多维数组基础知识

指针是能够存放一个地址的一组存储单元。一元取地址运算符 &,,,用法:P = &c;&只能应用于内存中的对象,如变量与数组元素。不能作用于表达式、常量、和register类型的变量。3.int *p;p内存的是指针,*p是指针指向的值。也就是可以有 p = &c下面的函数都等于把ip指向的对象的值加1(*ip)++ 等于++*ip 等于*ip += 1++ 和 * 这种一元运算符遵循从右向左的结合顺序。5. 数组名代表数组第.

2020-10-21 16:02:50 171

原创 C语音学习——以计算机命令行输入的逆波兰表达式的值,其中每个运算符或操作数用单独的参数表示

C程序设计语言第二版,P118练习5-10编写程序expr,以计算机命令行输入的逆波兰表达式的值,其中每个运算符或操作数用单独的参数表示。例如,命令expr 2 3 4 + *表示 2*(3+4)的值程序如下,精简版,并不能完全满足要求,命令行输入时直接输如参数,不用输expr,只能计算加法和乘法。#include <stdio.h>#include <ctype.h># define MAXLINE 1000int getline(char s[], int l

2020-09-19 16:42:00 298

原创 STM32F103ZE开发板WS2812B RGB灯带调试

调试时采用5颗灯珠的灯带。WS2812B每一颗灯都由24位控制,分为8位G,8为位R,8位B。从0到0xFF,数值越大那一种颜色越亮。发送的信号根据高低电平的时间分为1,0,和RES信号。103开发板控制IO口翻转实现0、1信号要实现几百ns的翻转,正点原子开发板提供的delay函数不能满足。采用下面的翻转方法:#define delay_250ns() do { \ __NOP(); \ __NOP(); \ __NOP();

2020-08-26 20:24:12 3669 1

原创 STM32调试问题汇总

keil5编写程序时,for循环的初值如果不是等式则会报错,如for(i, i<5, i++)则报错,修改为for(i = i, i<5 ,i++)

2020-08-26 11:27:20 256

原创 常用通讯接口分析

UART:通用异步收发器全双工,TTL电平,标准TTL输入高电平最小2V,输出高电平最小2.4V,典型值3.4V,输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。适合短距离的如电路板内的通讯。USART:通用同步和异步收发器当做异步通信时,与UART相同,加上同步信号CK时,可以做同步收发器。SPI:串行外设接口高速,全双工,同步的通信总线,四线制(SDO:主设备数据输出,从设备数据输入;SDI:主设备数据输入,从设备数据输出;SCLK:始终信号,由主设备产生;CS:从设备使能信号

2020-08-03 11:26:01 653

原创 C语言学习4——递归之快速排序法

快速排序法是C.A.R.Hoare于1962年发明的。对于一个给定的数组,将其按递归方法排序。快速排序法思路:1.取数组第中间个数的值,以它为分界线将这个数组分为两个部分。2.将这个数移到最左边,遍历数组,把小于该值的数移动到该值的左边,大于该值的数不动。3.记录发生移动的个数a,遍历结束后将所取的中间值置于第a+1个(此时该值左边的数都小于该值,右边的数都大于该值,但左右两边并不是升序排列的)。4.分别将左右两边视为两个新的数组,重复1-3步,直至数组个数小于2。程序如下:《c程序设计语言》

2020-06-30 20:50:53 546

原创 C语言学习3——运算符

C语言学习3——按位运算符^按位异或<< 左移右移 >>~求反码如把x的后六位置0,用x = x & ~077比x & 0177700好,~077是常亮表达式, x&-077是独立于字长的,比下面那个表达式好,下面那个假定了x是16位的量。x *= y + 1 的意思是 x = x * (y + 1)...

2020-06-15 14:18:34 253

原创 C语言学习——函数

C语言学习——函数c语言中,创建函数并调用的基本方法:#include <stdio.h>main (){ int mi(int a,int b); int i = 0; for(i = 0 ; i < 10 ; i++) { printf("%d %d\n",i,mi(2,i)); }}int mi (int a,int b){ int i ,x; x = 1; for (i = 0;i < b;i++) { x = x * a; }

2020-05-28 20:28:38 115

原创 C语言学习记录——打印直方图

C语言学习记录——打印直方图编写一个程序,打印输入的数字字符中各个数字出现次数的直方图。打印水平直方图#include <stdio.h>main(){ int number[10]; int i,c,x,y,maxy; maxy = 0; for (i = 0; i < 10; i++) { number[i] = 0; } while((c = getchar()) != EOF) { if(c >= '0' && c <

2020-05-28 19:54:50 1127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除