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

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接地,官方文档电路有示意,但是没有强调。
    .

你可能感兴趣的:(单片机,单片机,嵌入式硬件)