Arduino框架下最便宜的开发芯片-CH552初探

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino框架下最便宜的开发芯片-CH552初探相关的知识,希望对你有一定的参考价值。

Arduino框架下最便宜的开发芯片-CH552初探


CH55X Arduino平台环境搭建

  • GitHub地址: https://github.com/DeqingSun/ch55xduino
  • 在Arduino开发板管理器网址当中添加:https://raw.githubusercontent.com/DeqingSun/ch55xduino/ch55xduino/package_ch55xduino_mcs51_index.json

如果访问不了就搭建本地网络文件服务器进行安装,将资源下载到本地,通过HFS软件挂载到本地,再通过在Arduino开发板管理器网址添加本地的访问地址即可轻松搭建好。

🍭开发板选择

🌿示例程序

👉编译设置选项

🗝程序烧录

如果你的芯片是全新的,没有烧录过程序的出厂芯片,那么第一次烧录的话,可以直接通过编译上传按钮进行上传,第二次烧录以及后面的程序烧录就不一样了,需要通过官方的烧录软件WCHISPTool进行烧录。

  • WCHISPTool软件

WCHISPTool软件烧录方法

  • 通过Arduino IDE导出Hex烧录文件。
  • 第二次烧录(与第一次烧录有所不同),在目标板连接电脑前,需要将D+上拉到高电平,然后接入电脑USB接口上。

为什么说与初次烧录不同呢?因为CH552设计是有 [运行模式] 和 [烧录模式] 的,如果原本内部没有程序,那么会直接进入烧录模式,这也就解释了为什么我们第一次连接电脑的时候就能直接下载程序(沁恒这么设计的理由应该也是为了方便批量化生产);那么我们在第一次烧录程序完成之后呢,下次上电的时候就会直接进入运行模式,而不会进行烧录模式了(而且如果长时间处于烧录模式,单片机会自动重启进入默认的运行模式)。驱动电路D+的接V33的按键,就是为了烧录而准备的,要想在下次上电的时候进入烧录模式,只需要在上电的时候保持D+为高电平,之后在松开就可以了。


-🎯 WCHISPTool软件加载Hex文件

📝示例代码

本示例默认是烧录到CH559上的,如果想在CH552上运行,将其余两个宏定义的led引脚以及相关代码注释掉即可。

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the simpleCH552
  it is attached to digital pin P3.3

  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman
  modified 13 Jun 2020
  by Deqing Sun for use with CH55xduino

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

#include "src/userUsbCdc/USBCDC.h"
#define LED_BUILTIN 12 //552--->11
#define LED_BUILTIN2 24
#define LED_BUILTIN3 25
__xdata char recvStr[64];
uint8_t recvStrPtr = 0;
bool stringComplete = false;
uint16_t echoCounter = 0;


// the setup function runs once when you press reset or power the board
void setup() 
 USBInit();
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(LED_BUILTIN2, OUTPUT);
  pinMode(LED_BUILTIN3, OUTPUT);


// the loop function runs over and over again forever
void loop() 

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(LED_BUILTIN2, HIGH);
  digitalWrite(LED_BUILTIN3, LOW);
  USBSerial_println("Hello World!");
  USBSerial_flush();
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
    digitalWrite(LED_BUILTIN2, LOW);
  digitalWrite(LED_BUILTIN3, HIGH);
  delay(1000); 
      
    USBSerial_println("perseverance51");// wait for a second
    USBSerial_flush();//等待串口数据发送结束(串口数据发送必不可少)

  • 示例项目结构

🎯CDC虚拟串口调试打印信息

⛳示例项目工程源码

链接:https://pan.baidu.com/s/1Nkkc3YxqX4KtaHZrLpf7LQ 
提取码:0bgb

以上是关于Arduino框架下最便宜的开发芯片-CH552初探的主要内容,如果未能解决你的问题,请参考以下文章

CH55X 基于Arduino框架开发程序上传相关注意事项

CH55X 基于Arduino框架开发程序上传相关注意事项

Arduino框架下联盛德W801开发环境搭建教程

CH552单片机 USB CDC虚拟串口调试信息输出案例

沁恒CH552 USB学习之旅

Arduino for ESP8266 快速入门(二)选择开发板