STC系列单片机和MacOS/Linux下载程序

news/2024/11/24 7:47:41/

STC系列单片机简介

stc89系列:传统单片机,一条指令一般至少12个时钟周期,12/24/48不等;具有外部中断、定时器、UART功能,时钟频率支持0-42M;
stc12系列:高速单片机,很多型号支持内部RC时钟和外部晶振时钟,除了89系列的资源,往往还有AD、PWM、PCA、SPI功能,时钟频率支持0-35M;
stc15系列:除了以上,其内部的RC震荡电路,具有高精度,且可调的特点。

MacOS/Linux/树莓派 配置

  1. 安装sdcc作为编译器;安装stcgal作为下载器;
  2. 在mac上还可以安装visual studio code,然后安装Platform.IO插件,达到类似keil的效果。
  3. 树莓派就是一个Linux系统,和Linux配置是一样的。
  4. 最小电路:
    1. Vcc/Gnd
    2. 如果使用外部时钟,需要外接晶振和起振电容,在使用内部晶振的情况下,晶振引脚维持稳定电平,无震荡;
    3. 某些型号的单片机,需要将P1.0, P1.1引脚接低电平,具体参见数据手册;

FAQ

  1. 12系列单片机如何切换内部、外部时钟?
    指定clock_source选项 stcgal -D -o clock_source=internal playground1.ihx -p /dev/ttyUSB0,参见stcgal说明文档:doc
  2. stc12c5410ad stcgal -D playground1.ihx -p /dev/ttyUSB0遇到下列问题(一般是没有指定平台,即单片机系列型号):
Waiting for MCU, please cycle power: <- Packet data: FF
<- Packet data: 46 B9 68 00 29 00 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 66 45 00 E0 6A 83 FD F7 F7 FF FF FF BF FF FD F7 F7 FF 04 AD 16
done
Protocol detected: stc12
<- Packet data: 46 B9 68 00 29 00 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 04 DE 66 45 00 E0 6A 83 FD F7 F7 FF FF FF BF FF FD F7 F7 FF 04 AD 16
Protocol error: packet checksum mismatch
-> Packet data: 46 B9 6A 00 07 82 00 F3 16
Disconnected!

或者(一般是将platform参数指定为stc12)

Waiting for MCU, please cycle power: <- Packet data: C0
<- Packet data: 46 6E
<- Packet data: 0B
<- Packet data: 29
<- Packet data: 25
<- Packet data: 57
<- Packet data: FA
<- Packet data: 25
<- Packet data: 57
<- Packet data: FA
<- Packet data: 25
<- Packet data: 57
<- Packet data: FA
<- Packet data: 25
<- Packet data: 57
<- Packet data: FA
<- Packet data: 66
<- Packet data: 51
<- Packet data: E0
<- Packet data: AD
<- Packet data: FF
<- Packet data: DF
<- Packet data: FF
<- Packet data: FF
<- Packet data: FB
<- Packet data: FF
<- Packet data: DF
<- Packet data: FF
<- Packet data: 50
<- Packet data: 16

显式指定芯片类型为stc12a. stcgal -D -P stc12a playground1.ihx -p /dev/ttyUSB0. 这是stcgal的一个issue

  1. stc12c56系列无法下载
    一般使用内部时钟不会有问题;如果使用外部时钟,需要将P1.0,P1.1接地,官方文档电路有示意,但是没有强调。
    .

http://www.ppmy.cn/news/883715.html

相关文章

React懒加载/动态加载(Suspense +lazy())简单实例

页面嵌套 两种页面嵌套的方式&#xff0c;一种是父子组件&#xff0c;一种是懒加载1、父子组件&#xff08;可略&#xff0c;只用来做例子对比&#xff09;2、使用懒加载 两种页面嵌套的方式&#xff0c;一种是父子组件&#xff0c;一种是懒加载 1、原本需要用父子组件来实现页…

【专题速递】在线K歌、云化XR、咔嚓剪辑和FFmpeg直播能力更新计划

// 在线K歌的技术方案选型有哪些&#xff1f;对于沉浸式XR我们又有什么新的思考&#xff1f;高性能低依赖的剪辑视频需要具备什么技术&#xff1f;7月29日LiveVideoStackCon2023上海站客户端体验与性能优化专场&#xff0c;为您解答。 客户端体验与性能优化 客户端作为直接面…

python编程课后练习(一)

变量的命名和使用 1、简单打印&#xff1a;将一条消息存储到变量中&#xff0c;并将其打印出来 news “Hello, python, nice to meet you!” print(news) 2、多条简单消息&#xff1a;将一条消息存储在变量中&#xff0c;并将其打印出来&#xff1b;再将变量的值修改为一条新…

java 电子邮件 received:头文件,奇怪的事情发生在gmail头文件和外部帐户中

在我的网站上有一个表格可以订阅我的通讯。该表单通过POST方法将用户的电子邮件发送到URL(nicetomeetyou.php)。在这个URL中&#xff0c;我有以下代码&#xff1a; $email $_POST[email]; $subject "¡Welcome to My World!"; // Set content-type header for …

驼峰命名day(44)

题目描述&#xff1a; 从C/C转到Java的程序员&#xff0c;一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词&#xff0c;例如“hello_world”&#xff1b;而Java则采用一种叫骆驼命名法的规则&#xff1a;除首个单词以外&#xff0c;所有单词的首字母…

解读第一个C++程序

与学习C语言一样&#xff0c;开头一定先给大家介绍一下C&#xff0c;看看第一个简单的C程序到底长什么样子&#xff0c;初步了解C&#xff0c;请看如下代码&#xff1a; 1 2 3 4 5 6 7 #include<iostream> using namespace std; int main() { cout<<"Nic…

【每日一题】骆驼命名法

【每日一题】骆驼命名法 文章目录 【每日一题】骆驼命名法1、题目来源2、题目描述3、输入/出描述4、示例5、解题思路6、代码展示 1、题目来源 牛客网&#xff1a;骆驼命名法 2、题目描述 从C/C转到Java的程序员&#xff0c;一开始最不习惯的就是变量命名方式的改变。C语言风格使…

出卖具有知识产权的计算机,出卖具有知识产权的计算机软件等标的物,该标的物的知识产权属于买受人。()A.正确B.错误...

参考答案如下 出卖产权错误——What nationality are you?——Im _______. 知识正确Whats the weather ____________? 计等标的物的物的知Whats \灾区\in English? 算机识产受人Whats \灾区\in English? 软件Our train is _______ at Shanghai at seven oclock this evenin…