CListery 发表于 2024-6-19 14:49:10

跟着冲哥学习单片机

首次接触单片机是在高中,当时玩心太大,没有认真学,现在从事的工作也是软件开发相关的工作,业余会在立创平台上开发(白嫖)一些硬件项目,但是由于一开始在单片机这款上学习不够认真,导致会遇到很多问题(书到用时方恨少)。
正好趁这次STC和立创平台一起举办了《STC单片机创意设计大赛》,我选择了最基础的开发板设计赛道,我选择的是 STC8H8K64U-451-LQF32 这款芯片作为开发板主控,通过查看芯片手册并设计出了基础的最小系统电路。
后续我会在视频课程中学习更多的知识,并将所学的知识用来完善这款开发板。

CListery 发表于 2024-6-19 14:50:56

本帖最后由 CListery 于 2024-8-7 15:58 编辑

附上立创平台项目的链接:https://oshwhub.com/clistery/2024-mcu-design-contest-mcu-trac

CListery 发表于 2024-6-19 14:54:51

第一课学习内容及心得:
1. 学习单片机要能沉得下心,同时思维又要能发散
2. 多逛逛论坛,吸取前辈经验
3. 少说话,多操作
4. 做项目时要先分析清除需求,再选择性价比最高的芯片
5. 做竞赛题是很好的练习方式

CListery 发表于 2024-6-19 16:04:58

第二课内容及心得:
1. 学习单片机的一些外围设备
2. 红外发射、接收头:可以实现遥控器及被遥控的功能
3. 数码管:显示数值
4. 可调电阻
5. 面包板
6. LED灯
7. NTC测温电阻:通过电压模拟量变化采集温度信息,连续的
8. 18B20测温电阻:通过数字信号采集温度信息,不连续
9. ADC按键:通过预先设定的基准电压和电阻来判断具体是哪一个按钮被按下
10. PWM模拟:数字转模拟量,可以实现通过数字型号控制电压的变化,比如灯泡亮度,电机转速等
11. 24C02存储芯片:可以存储一些可配置的动态数据,比如设定水位,就算单片机被替换掉之后,这部分数据也会被保留下来
12. 矩阵按键:可以用来实现计算器、密码锁等
13. 独立按键
14. LCD:可以显示图片、文字等内容的液晶屏幕
15. RS232:USB转RS232,可以与上位机通信(逐步淘汰)
16. FLASH芯片:更大的外置存储器,可以存储图片、字库等更大的内容

CListery 发表于 2024-6-20 17:30:33

本帖最后由 CListery 于 2024-6-24 14:01 编辑

第三课内容及心得:
1. 如何下载 STCAI-ISP 烧录软件
2. 如何查找并下载 STC 芯片手册
3. 如何借助便捷的软件查看芯片手册
4. 搭建 C251 的开发环境(STC32G12K128芯片只能在C251上进行开发)
5. 下载对应型号实验箱的示例代码项目并尝试编译
6. 通过 STCAI-ISP 工具添加芯片型号头文件到 Keil 中
7. 通过 STCAI-ISP 将编译的 hex 下载到芯片(在单片机上电之前,需要先将 P3.2 引脚拉低,等待 STAAI-ISP 检测到 STC USB Writer 端口,就表示单片机进入了下载状态,这时就可以释放 P3.2 引脚了)
8. 通过 STCAI-ISP 范例程序,选择单片机型号为 STC8H系列,IO口测试,再点击下载 HEX 即可检查单片机的 IO 口是否正常工作
9. STC8H及之后的系列只需在 UCAP 引脚接入串联一个 0.1~10uf 电容即可激活单片机 USB-HIC 功能

CListery 发表于 2024-6-24 15:45:18

第四课内容及心得:
1. 发光二极管原理
2. IO口的输入输出
3. IO口可以按组和按单个来控制
4. Keil 工程的创建、添加源文件、编译、生成 hex、使用 STCAI-ISP 工具烧录到单片机
5. 查找 IO 口及寄存器地址
6. 单行注释
7. 操作寄存器将 IO 口设置为准双向口
8. 操作单个 IO 口输出高低电平

CListery 发表于 2024-6-24 17:23:05

本帖最后由 CListery 于 2024-6-24 17:26 编辑

第五课:
1. 实现不断电下载1(HID)
2. 如何引入以及查看头文件
3. 函数定义、生命
4. 实现不断电下载2(CDC)
5. 认识终端使能寄存器(IE)
6. 再次重申,遇到问题多看芯片手册!!!

CListery 发表于 2024-6-24 22:58:30

本帖最后由 CListery 于 2024-6-24 23:01 编辑


更新 STC8H8K64U 的 HID 配置方式:
1. 创建一个空白项目和 main.c 备用
2. 到官网下载 USB 库文件(软件工具->库函数->文件下载)
3. 解压刚刚下载的 USB库文件
4. 复制 stc32_stc8_usb.h 到项目中备用
5. 进入 查询模式STC-HID库文件 或 中断模式STC-HID库文件 目录
6. 复制 stc_usb_hid_8h_data.LIB 到项目中备用
7. 回到项目中将 stc_usb_hid_8h_data.LIB 添加到项目中(add existing files to group 'xxx' ....)
8. 点击 Options for Target...
9. 在 Device 选项卡中勾选 Use Extended Linker (LX51) instead of BL51
10. 切换到 LX51 Misc 选项卡,在 Misc controls 中输入 REMOVEUNUSED
11. 将以下代码写入 main.c
#include "stc8h.h"
#include "string.h"

#include "stc32_stc8_usb.h"

void sys_init();

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void main(void)
{
sys_init();
usb_init();
EA = 1;

while (1)
    ;
}

void sys_init()
{
P_SW2 = 0x80;
}



12. 将 HEX 写入芯片
13. 在 ISP 工具中配置 USB(HID) 下载模式,勾选 使用默认的内部自定义命令“@STCISP#” 和 每次下载前都先发送自定义命令


14. 在之后的下载中直接点击 下载/编程 即可


CListery 发表于 2024-6-25 17:29:07

本帖最后由 CListery 于 2024-6-27 16:26 编辑

第六课:
1. 学习如何使用 printf
2. 通过 USB 模拟串口通过 STCAI-SIP 工具查看打印的内容
3. 学习如何通过十六进制直接控制一组 IO 口
4. 学习常用数学运算符 (+、-、*、/、%、++、--)
5. 学习常用位运算符(>>、<<、||、|、&&、&、!、~、^、&=...)

CListery 发表于 2024-6-27 15:24:29

本帖最后由 CListery 于 2024-6-27 15:26 编辑

第七课:

1. 学习 二进制、十进制、十六进制 在代码中如何表示,以及互相转换的方式

2. 学习 C 语言中的基本数据类型
bit 一个二进制位

byte 占8个二进制位 (8bit位)[-128,127]

char 占8个二进制位(8bit位),1byte(1字节),最高位用来标识正负 [-128,127]
unsigned char 占8个二进制位

int 占16个进制位(16bit),2byte(2字节),最高位用来标识正负 [-32768,32767]
unsigned int

enum 8bit=[-128,127] 16bit=[-32768,32767]

long 占32个二进制位(32bit),4byte(4字节) [-2147483648,2147483647]
unsigned long

float 占32个二进制位,单精度浮点数
double 占32个二进制位,双精度浮点数,最大最小取值范围与float相同,但是小数点后可表示更多数值

sbit
sfr
sfr16


页: [1] 2 3 4
查看完整版本: 跟着冲哥学习单片机