看课中的笔记


一、电路中电平的理解

在这里插入图片描述
几乎所有单片机周边芯片都是TTL电平
H是高电平,L是低电平
在这里插入图片描述

在这里插入图片描述
之前写的LED灯点亮是灌电流驱动,低电平点亮
在这里插入图片描述
在这里插入图片描述
上下拉电阻,在没有作业时给外界一个高低电平


二、GPIO_WriteBit中枚举的巧用

typedef enum
{ Bit_RESET = 0,
  Bit_SET
}BitAction;

GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
其中BitAction居然是枚举,枚举还能这么用

//#define KEY1 PAin(0)// PA0
//#define KEY2 PAin(1)// PA1

#define KEYPORT	GPIOA	//定义IO接口组
#define KEY1	GPIO_Pin_0	//定义IO接口
#define KEY2	GPIO_Pin_1	//定义IO接口

PBout(n)PBin(n)感觉没啥用啊,为啥要把接口的in和out单独划分,直接弄个下面的_0和_1不就行了?
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //LED取反这个1-x!x有啥区别?


三、判断if(USART_RX_STA&0xC000)

判断if(USART_RX_STA&0xC000)
按位与操作,刚开始不是很理解这个按位与咋判断if,思考后觉得这个判断条件是如果括号里面的数不为0,就是真,因为在c语言中,非0即为真,豁然开朗!!


四、为什么用0x3FFF来判断接收状态标记?

			}else if((USART1_RX_STA&0x3FFF)==1){ //判断数据是不是2个

USART_RX_STA的bit15表示接收完成标志,bit14表示接收到0X0D,这是个接收的协议。USART_RX_STA&0x8000即bit15位比较,若为1则接受完成,之后再接收判断长度。也就是剩余14位比较,USART_RX_STA&0x3fff,0x3fff即0011 1111 1111 1111,bit相同则为1否则为0,便可得到USART_RX_STA的低14位的值,便得到其长度
真吐了,鸡零狗碎的知识,怎么有人能这么细节

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值