找回密码
 立即注册
查看: 4143|回复: 33

跟着冲哥学习单片机

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

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

回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-19 14:50:56 | 显示全部楼层
本帖最后由 CListery 于 2024-8-7 15:58 编辑

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-19 14:54:51 | 显示全部楼层
第一课学习内容及心得:
1. 学习单片机要能沉得下心,同时思维又要能发散
2. 多逛逛论坛,吸取前辈经验
3. 少说话,多操作
4. 做项目时要先分析清除需求,再选择性价比最高的芯片
5. 做竞赛题是很好的练习方式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 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芯片:更大的外置存储器,可以存储图片、字库等更大的内容
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 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 功能
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-24 15:45:18 | 显示全部楼层
第四课内容及心得:
1. 发光二极管原理
2. IO口的输入输出
3. IO口可以按组和按单个来控制
4. Keil 工程的创建、添加源文件、编译、生成 hex、使用 STCAI-ISP 工具烧录到单片机
5. 查找 IO 口及寄存器地址
6. 单行注释
7. 操作寄存器将 IO 口设置为准双向口
8. 操作单个 IO 口输出高低电平
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-24 17:23:05 | 显示全部楼层
本帖最后由 CListery 于 2024-6-24 17:26 编辑

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

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 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
  1. #include "stc8h.h"
  2. #include "string.h"
  3. #include "stc32_stc8_usb.h"
  4. void sys_init();
  5. char *USER_DEVICEDESC = NULL;
  6. char *USER_PRODUCTDESC = NULL;
  7. char *USER_STCISPCMD = "@STCISP#";
  8. void main(void)
  9. {
  10.   sys_init();
  11.   usb_init();
  12.   EA = 1;
  13.   while (1)
  14.     ;
  15. }
  16. void sys_init()
  17. {
  18.   P_SW2 = 0x80;
  19. }
复制代码




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

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


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-25 17:29:07 | 显示全部楼层
本帖最后由 CListery 于 2024-6-27 16:26 编辑

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-02-18 09:33:29

1

主题

32

回帖

486

积分

中级会员

积分
486
发表于 2024-6-27 15:24:29 | 显示全部楼层
本帖最后由 CListery 于 2024-6-27 15:26 编辑

第七课:

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

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

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

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

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

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

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

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

sbit [0,1]
sfr [0,255]
sfr16 [0,65535]


回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-9 02:58 , Processed in 0.123138 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表