- 博客(13)
- 收藏
- 关注
原创 Uart异步串口通信
1. 什么是UART?(1)UART,通用异步收发器。相比于USART,UART收发是以字符为单位,没有CLK同步时钟。(2)UART最主要的是三根数据线:TXD发送引脚RXD接收引脚GND接地引脚(3)UART比较重要的几个参数:波特率:每秒传送的码元数,比如9600,115200数据位:典型值5、6、8、9位奇偶校验位:一般分为奇校验和偶校验或者无校验位停止位:典型值1、1.5、2位(4)UART工作示意图如下图所示: UART工作模式这是典型的UART
2021-02-10 18:03:59
2809
原创 C_learning_notes_string
learning_notes_stringstrlen 运用所出现的问题strlen 返回值是 size_t,它是一个无符号整型if(strlen(x) >= strlen(y)) 和 if(strlen(x)-strlen(y) >= 0)其实是不等价的,原因是strlen返回值是一个无符号类型,strlen(x)-strlen(y)也是一个无符号类型,而无符号数绝不会是一个负值。当然这个问题也是可以解决的,就是把strlen的返回值强制转换为int类型strlen所计算的字符
2020-09-12 11:02:39
83
原创 C_learning_notes_array
learning_notes_array数组名?你真的了解吗?e.g. int a[10]; 数组名a是指向数组第一个元素的地址,类型取决于数组元素的类型。如何理解数组名是一个常量? 不可随意修改。一般来说,在创建数组后,编译后自动为数组分配一个内存地址。当程序运行时,是不可改变内存地址的。数组元素的访问——下标引用 or 指针间接访问?C语言中,二者等价。什么意思?举个栗子你就明白啦!a[x] 等价于 *(a + x),(这里x是任意一个常数)。so? 下面两个ap[0]、ap
2020-09-12 09:15:30
90
原创 stc15f2k60s2学习笔记——数码管显示影响led亮灭
数码管显示影响led亮灭1.情况描述笔者在学习单片机编程时,在数码管动态显示的同时控制led,出现了led显示出现不了笔者想要的情况。数码管动态显示代码如下:void seg_disp(void){ P2=((P2&0x1f)|0xe0); P0=0xff; P2=((P2&0x1f)|0xc0); P0=(1<<dspcom); P2=((P2&0x1f)|0xe0); P0=tab[dspbuf[dspcom]]; P2&=
2020-08-01 20:10:40
1727
原创 STM32学习笔记——系统滴答定时出现的问题及解决方法
STM32学习笔记——系统滴答定时出现的问题及解决方法问题描述首先来看一段野火单片机学习代码:/**************************************************************************************** 函 数: void SysTick_Delay_Ms( __IO uint32_t ms)* 功 能: 毫秒级延时* 参 数: ms 传入微秒参数* 返回值:无* 备 注: LOAD为24位寄存器,ms的最大传入值
2020-07-21 13:53:10
3180
1
原创 STM32学习笔记——位带操作(GPIO端口输入/输出)
STM32学习笔记——位带操作(GPIO端口输入/输出)位带操作公式代码表示位带操作公式(addr&0xF0000000)+0x02000000+((addr&0x00FFFFFF)<<5)+(n<<2)addr:要操作的位所在的寄存器n:要操作的位号代码表示#define GPIOB_ODR_Addr (GPIOB_BASE + 0x0C)#define PBout(n) *(unsigned int*)((GPIOB_ODR_Addr&0x
2020-07-10 15:25:56
851
原创 STM32学习笔记——了解固件库文件
STM32学习笔记——了解固件库文件启动文件startup_stm32f10x_hd.s时钟配置文件system_stm32f10x.c将外部时钟8M倍频为72M内核相关文件CMSIScore_cm3.ccore_cm3.h 实现内核外设的寄存器映射NVIC(嵌套向量中断控制器)、SysTick(系统滴答定时器)misc.hmisc.c外设相关文件FWLIBstm32f10x.h 实现内核之外的寄存器映射stm32f10x_xx.c 外设驱动函数库文件stm32f1
2020-07-07 17:33:37
439
原创 STM32学习笔记——点亮一个LED灯
STM32学习笔记——点亮一个LED灯用寄存器点亮LED01.硬件电路2.软件编写(寄存器版)用寄存器点亮LED01.硬件电路由硬件电路图可知,LED0对应端口PB5通过此图可知,当PB5口清零时,LED0就会亮起。2.软件编写(寄存器版)int main(){ //打开GPIOB端口时钟 *(unsigned int*)0x40021018 |= (1<<3); //配置PB5为输出模式 *(unsigned int*)0x40010C00 |= ((1)<&
2020-07-05 16:55:11
572
原创 STM32学习笔记——寄存器映射
STM32学习笔记——寄存器映射存储器映射GPIOB端口寄存器描述——使PB0输出0/1宏定义方式存储器映射总线基地址总线名称总线基地址APB10x4000 0000APB20x4001 0000AHB0x4000 8000GPIO基地址GPIO端口挂在总线APB2上端口名称端口基地址GPIOA0x4001 0800GPIOB0x4001 0C00GPIOC0x4001 1000GPIOD0x4001
2020-07-04 19:32:44
1996
原创 VsCode中C/C++语言的编译运行
VsCode中C/C++语言的编译运行1. 准备工作(1)VsCode安装(2)MinGW安装2.在VsCode中新建项目(1)新建文件(2) 编译运行VsCode中如何编写C/C++语言?这在VsCode官网指南中有详细的指导,如果在本文中有不清楚内容,推荐你阅读一番。1. 准备工作(1)VsCode安装VsCode下载官网: Vscode下载(2)MinGW安装MinGW下载地址:MinGW下载MinGW安装好后需要配置Path,配置好后检查安装是否成功。如果有 不确定安装选项、不知
2020-06-26 19:36:57
808
原创 STC15F2K60S2单片机入门:编写头文件
单片机入门:头文件包含引言具体操作引言软件知识小白,分享单片机入门的一些经验知识问题描述在STC15F2K60S2单片机开发使用过程中,常常会遇到使用单片机多种模块的情况。比如,同时使用DS1302时钟芯片、DS18B20温度芯片等。这时,我们需要对芯片直接读写字节;这些读写字节的函数可以直接放入主函数中,但是程序就显得比较乱。我们需要将这些读写函数单独写入一个.c文件(如DS1302.c),然后在主函数中通过引用头文件的方式,使用这些函数。具体操作如下。具体操作首先创建.c文件笔
2020-06-02 15:20:36
4014
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人