LEE
发表于 2024-5-10 11:43:05
zhange 发表于 2024-5-10 08:52
第一集:认识单片机
低调,没给人家告你侵权{:lol:}
zhange
发表于 2024-5-10 12:45:36
第四集:建立工程点亮第一颗LED下
哎吆,高级起来了,自动化下载。
这集貌似没啥难度?简单设置好,以后都是用的模版。so easy。。。
1.函数调用,函数声明,函数定义。注意三者关系。以及他们在main函数前后的关系。
2.多收集别人的例程,以后参考。。。
3.EA 中断总开关,这个记不住 后边有坑。用到中断就开他。
4.Px //P0P1 P2
没搞明白地方:usb这两种模式啥区别,后边貌似都是用的cdc模式。
zhange
发表于 2024-5-10 15:10:36
第五集:C语言运算符和进制数入门上
1.printf:调试串口必备,上节课用的usb串口模式,这不就用到了。下边几个占位符应该就可以了吧。
printf("HELLO WORLD");
printf("%d",i);
[*]%d 整数
[*]%s 字符串
[*]%c 字符
[*]%x 十六进制
2.hex十六进制显示
进制和位数不要搞混了,位数表示的是这个字占用计算机几个位,位只能用二进制的0 1表示。
16进制1位代表2进制的4位。
0x55:是16进制表示方法,表示成二进制就是 0101 0101;单片机的存储都是二进制存储。
二进制b 表示
3.简单的十六进制转二进制记住,不会的直接科学计算器,
降龙棍露面吧!!!!
zhange
发表于 2024-5-10 15:48:47
第五集:C语言运算符和进制数入门下
1.+-*/和基本的数学运算一样,没区别。
2.++ --注意符号的顺序,在前边是先运算再引用,在后边是先引用后运算,如果这一行只有这一个变量,没有其他的了,比如(i++;)和(++i;)其实前边后边都行,注意区别就行
int jia()
{
int i = 0;
return i++;
}
int jia()
{
int i = 0;
return ++i;
}3.或| 有1就是1没1 那没办法了
与& 全是1才是1
异或 ^相同则为0 不相同则为1
~ 取反
!逻辑非
<<左移一位倍数乘2
>>右移一位除2
4.+= 等价于i = i+b; 新手还是老老实实的写全吧!!!
-= & =。。。。。。简写的符号了解,上边的3条必须记住。
toddyang
发表于 2024-5-10 17:24:23
向你学习,加油
zhange
发表于 2024-5-10 17:34:34
第六集:LED闪烁和花式点灯上
1.#define 预定义
2.u8 u16 不建议使用我是新手我要记住单词 unsigned char unsigned int
3.延时函数最好用isp软件生成,注意选择的频率,还有mcu版本,这里有巨坑.
4._nop_();无命令操作指令调用这个指令 头部需要包含intrins.h
void Delay1000us(void) //@11.0592MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 2763UL;
while (i) i--;
}
zhange
发表于 2024-5-11 09:42:10
第十八集:ADC采集电源电压和ADC按键上
1.adc计算公式:输入电压 = 参考电压/4096*采集的数值。反推参考电压 = 输入电压(1.19v内部的)/采集数值*4096。内部电压既然为1.19,记住就行,不读取??????
2.adc按键扫描其实就是电阻的短接,按下的按键不一样,串进来的电阻不一样,分得的电压不一样????高阻输入必须看看了。。。
疑问:
已经知道了内部参考电压为1.19v?为啥还要读取,直接推算就行。
坑:
我在那下的手册呀,和官网不一样,巨坑呀。以前手册是CHIPID07我说编译老是错误官网偷偷的把0删除了。。。。
记得就是在官网下的呀。。。。
把零去掉就可以了,内部电压数值为
zhange
发表于 2024-5-11 10:24:41
第十八集:ADC采集电源电压和ADC按键中
1.adc按键扫描和矩阵键盘比起来有高级了,占得io口又少了。
2.static修饰符 初始化一次使用范围不变。
static修饰局部变量,改变了变量的存储位置,本来一个局部变量是存储在栈区的,被static修饰之后就存储在静态区了。而静态区的变量的生命周期是全局的,出了作用域不会被销毁,下次进入作用域时还在。
注意:静态的局部变量虽然生命周期和“正常”的局部变量不同,但是作用域并没发生改变,仍然是在其局部范围内可以被使用。3.按键状态保存,可以做很多判断,
4.温习下数码管:数码管分为共阴,共阳,但是断码没变。共阳?灌电流输入
5.做时钟最好用定时器中断,16位自动重装,在中断里做时分秒自家。中断不要一直进,进的次数越少越好。
zhange
发表于 2024-5-11 10:37:43
第十八集:ADC采集电源电压和ADC按键下
好费脑子,虽然已经做过电子时钟了,但是使用的是tm1637,设置简单,没试过数码管,再刷一遍吧。。
---二刷分隔符---
zhange
发表于 2024-5-11 12:02:44
第六集:LED闪烁和花式点灯下
接着复习吧,玩adc玩累了撸不动了
1.各位兄弟,手册记得经常更新,我掉坑里了今天。
2.不知道函数和变量咋命名的可以研究下大驼峰命名(单词首字母大写)和小驼峰命名(第一个单词不大些后边的单词首字母大写)
函数命名,还是用拼音吧,英文太差了。拼音不容易混。
3.编译的时候有错误不行,有警告可行,但最好把警告排除了。一般都是函数或变量定义了没调用啥的。
4.防止重复加载
#ifndef__ADC_H
#define __ADC_H
//代码在这里
#endif