C51单片机开发环境
0 OS环境
1 IDE
下载Clion
2 嵌入式插件
安装pio插件
3 嵌入式
我使用的是HomeBrew进行管理
shell1
2
3brew update
brew install platformio验证
shell1
pio --version
4 IDE编译
4.1配置ToolChains
除了默认,我额外配置了2个,都是用的gcc编译器,但是调试器不一样
4.1.1 Default
4.1.2 GCC
4.1.3 ARM-Linux
4.2 配置CMake
根据需要选择配置的ToolChain,我优先使用的是ARM-Linux
4.2.1 Default
4.2.2 Debug-ARM-Linux
5 烧录
5.1 安装对应的USB驱动
比如安装CH340驱动,根据系统选择自己需要的版本进行安装
安装好驱动后,将板子连接PC进行验证
shell1
pio device list
5.2 stcgal
这个是python项目的一个package,需要前置安装好py3
shell1
pip3 install stcgal
验证
shell1
stcgal --version
6 项目流程
6.1 新建项目
选择自己适配的板子型号,没有需要的板子就按照单片机型号进行选择
6.2 添加单片机头文件
pio集成的环境使用的是sdcc编译,提供了开发的头文件,需要加到CMakeLists中让IDE识别到
shell
1 |
|
6.3 修改platformio.ini
我使用的默认的upload烧录不成功,应该是我电脑上有多个py版本导致pip管理的stcgal有错乱,手动指定烧录命令
in
1 |
|
6.4 IDE头文件路径飘红问题
在8051.h和8052.h头文件中#include “lint.h”
6.5 语法问题
大部分教材文档都是基于windows+keil的,mac+sdcc的语法跟其有些不同
中断回调函数定义中x标识的是中断号
比如
中断号 | 含义 |
---|---|
0 | 外部中断0 |
1 | 定时器中断0 |
2 | 外部中断1 |
3 | 定时器中断1 |
4 | 串口中断 |
sdcc | keil | |
---|---|---|
头文件 | 8052.h/8051.h | reg52.h/reg51.h |
端口控制口定义 | #define LED1 P2_0 | sbit LED1 = P2 ^ 0; |
中断回调定义 | void time1() __interrupt(x) {} | void time1() interrupt 3 using 2 |
6.6 烧录
6.6.0 打开开关,给板子供电
6.6.1 在Upload的前置加上Build,这样每次改完代码直接点击Upload就行
6.6.2 烧录是根据终端提示进行断电/供电操作
出现==Waiting for MCU, please cycle power: done==提示时手动进行一次断电/上电动作
完整执行日志如下
txt
1 |
|
7 代码
Git地址,master分支。
C51单片机开发环境
https://bannirui.github.io/2023/02/28/C51单片机开发环境/