掌握C语言之后,接着就是去 驱动一些常用模块
逐飞已经出了简单的视频,你需要看懂他在干什么。
基本上所有模块的使用过程都是 先初始化,然后调用相关函数,循环执行。
【逐飞科技】STC8G2K 核心板与智能车常用模块搭配使用视频教程_哔哩哔哩_bilibili
看完视频,就可以打开逐飞的库,里面有一些例程,首先把红色的这些例程要看懂,尝试执行一遍,然后自己写代码,执行出逐飞视频里的效果。
文件夹名称 | 中文命名称 | 简介 |
1-LED Blink Demo | LED闪灯 | P5.2作为LED的输入,当P5.2为低电平时,LED亮 |
2-GPIO Input Demo | GPIO输入例程 | 将P04连接GND,可以看到LED 灭掉 |
3-EXTI Demo | 外部中断 | 边沿触发INT0_P32中断LED 就会被点亮 |
4-PIT Timer Interrupt Demo | 周期中断例程 | 1秒钟LED翻转一次 |
5-ADC Demo | ADC输入例程 | 使用在线调试可以查看ADC数值 |
6-PWM Demo | PWM例程 | 脉宽调制 |
7-Decode Demo | 编码器解码 | 使用带方向的编码器,解码 |
8-UART Demo | 串口例程 | 串口输出0X1E |
9-Printf Demo | printf例程 | printf重定向,输入字符串 |
10-Specifies_Variable_Or_Code_Location_Demo | 变量存放区域例程 | 里面讲解了RAM和FLAH的大小和分布 |
11-EEPROM Demo | EEPROM例程 | EEPROM读写操作 |
Libraries | STC8H8K64U库 | STC8H8K64U开源库 |
下面我简单讲一下每个模块的作用,有一个简单的了解,具体深层次的内容,在CSDN上搜就行了。
在LED和GPIO例程里,给LED=0,LED=1,实际就是对应引脚进行了高低电平的转换,
引脚(例程是P52)与GND 之间的电势差就从0变为3.3v(或5v)导致LED亮灭,
pwm脉宽调制,实际上就是一个比例问题,
假设最大占空比DUTYmax=10000,如果给占空比duty=5000,
则引脚与GND的电势差=(5000÷10000)×5V=2.5v ,这里是简单举个例子
在CSDN上搜PWM,看大佬们的博客,能让你们彻底理解,
这两个博客讲的都挺好,你简单看一下,知道PWM怎么回事,然后会用就行
STM32——PWM知识详解_笛卡尔的叹息的博客-CSDN博客_stm32pwm
PWM原理 PWM频率与占空比详解_Z小旋的博客-CSDN博客_pwm
ADC就是数模转化,A模拟量,D数字量,
例程中,就是通过adc_once(ADC_P11, ADC_10BIT)这个函数,
进行ADC采集,把电压这个模拟量,变为直观的数字量,
简单来说就是把电压变成一个数,方便你去进行数据处理。
这在电磁和充电组别应用及其明显。
看一下这篇文章方便理解
什么是 ADC - 模数转换器 - 知乎
编码器解码 顾名思义 就是将编码器的状态解算出一个数,
和ADC差不多,都很好理解。
在智能车中,编码器大部分与后轮(驱动轮)结合,这样就可以知道当前的车速。
【平衡小车制作】(三)编码器讲解(超详解)_鲁乎乎的博客-CSDN博客_霍尔编码器和光电编码器的区别
编码器分类及原理和测速应用(含代码)_清雨夜Cll的博客-CSDN博客_编码器程序
一样,看看这两篇文章,知道编码器是什么就行,
像这篇文章,他讲到了写配置编码器的函数,暂时没必要看,逐飞的库里写好了。
如果对自己要求高一点,你简单看看,明白作者在干什么,到时候你自己独立写配置模块的函数,知道怎么个流程。
中断就是达到某个条件就去执行
如定时器中断(常用),设置中断周期为5ms,那么就会每5ms执行一次中断里的程序
串口中断:串口收到数据,就执行中断里程序
我说的比较浅显,具体需要搜一下大佬们的解释
什么是中断?中断的作用?_惬意的下雨天的博客-CSDN博客_什么是中断
中断的概念_typhoonzb的博客-CSDN博客_中断的概念
[7-1] 定时器_哔哩哔哩_bilibili
中断比较重要,建议多看看
UART起到通信(数据传输交换)作用
TX发送,RX接收,用三根线就可以让两个板子通信,用一个usb转ttl就可以让板子与电脑通信,用无线串口就可以无线通信。
[8-1] 串口通信_哔哩哔哩_bilibili
一篇短文让你彻底理解什么是串口通信_Neutionwei的博客-CSDN博客_串口通信
EEPROM即带电可擦可编程 只读存储器,即可以写数据,又可以读数据,特点是掉电也能保存数据。
实际中我们可以写人机交互界面写入调车参数,修改方便,无需一次次下载代码。
STC16F不自带EEPROM,STC32G自带EEPROM
EEPROM的学习和使用方法_Bornpride的博客-CSDN博客_eeprom
深入理解EEPROM使用_大牛攻城狮的博客-CSDN博客_eeprom怎么写入数据
串口通信和flash/eeprom在代码上实现过程差不多,
因为串口通信是一个字节 一个字节(8位) 地传输,flash/eeprom的读写也是8位8位的,具体怎么用,我后面应该会写,