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初探的主要内容,如果未能解决你的问题,请参考以下文章