SAKRUA开发板对VS1053B的各种命令函数:
#ifndef __VS10XX_H__
#define __VS10XX_H__
#include "spi.h"
#define VS_WRITE_COMMAND 0x02
#define VS_READ_COMMAND 0x03
//VS10XX寄存器定义
#define SPI_MODE 0x00
#define SPI_STATUS 0x01
#define SPI_BASS 0x02
#define SPI_CLOCKF 0x03
#define SPI_DECODE_TIME 0x04
#define SPI_AUDATA 0x05
#define SPI_WRAM 0x06
#define SPI_WRAMADDR 0x07
#define SPI_HDAT0 0x08
#define SPI_HDAT1 0x09
#define SPI_AIADDR 0x0a
#define SPI_VOL 0x0b
#define SPI_AICTRL0 0x0c
#define SPI_AICTRL1 0x0d
#define SPI_AICTRL2 0x0e
#define SPI_AICTRL3 0x0f
//外围控制管脚的定义
#define VS_DQ PIN_P23 //DREQ
#define VS_RST PIN_P22 //RST
//#define VS_XCS PIN_PC4 //XCS--SPI_CS0--IO10
//#define VS_XDCS PIN_PC1 //XDCS--SPI_CS2--IO23
u16 VS_RD_Reg(u8 address);
void VS_WR_Data(u8 data);
void VS_WR_Cmd(u8 address,u16 data);
void VS_Init(void);
u8 VS_HD_Reset(void);
void VS_Soft_Reset(void);
void VS_Ram_Test(void);
void VS_Sine_Test(void);
void set1003(void);
u16 GetDecodeTime(void);
u16 GetHeadInfo(void);
void ResetDecodeTime(void);
void LoadPatch(void);
void GetSpec(u8 *p);
#endif
IO操作函数学习:
pinMode(PIN,PIN模式)
作用:设置IO输入或输出
参数:
PIN:要设置的IO
模式:INPUT(输入),OUTPUT(输出),INPUT_PULLUP(带上拉的输入)
返回值:没有
示例:设置控制LED0的IO为输出
pinMode( PIN_LED0, OUTPUT );
digitalWrite(PIN,值)
作用:IO输出高、低电平
参数:
PIN:要设置的IO
值:1,0
返回值没有
示例:设置LED0的IO输出高电平
digitalWrite(PIN_LED0,1);
digitaRead(PIN)
作用:从IO读入数据
参数:
PIN:要读数据的IO
返回值 :1或0
示例:
IOStatus=digitaRead(PIN0)
setup()
上电初始化函数,只是上电时运行一次
loop()
主循环函数,上电运行setup()后转到此函数循环运行。
下载程序运行后,LED灯闪烁。
SAKURA板以太网连接测试
今天学习用于以太网连接的库函数,下面是我今天学习的函数(未完待续。。。)
void begin(byte mac[6], byte ip[4], byte dns[4], byte gateway[4], byte subnet[4]);
启动以太网连接
参数:
mac:网卡MAC地址
ip:IP
dns:DNS
gateway:网关
subnet:子网掩码
char *localIP();
取得本机IP地址,如果启动时没有指定IP,通过DHCP指派,可通过此函数,取得IP
bool isLinkup();
检测是否已经连接上,如连接上返回1,否则返加0
bool Ping(const char *hostname);
通过ping测试连接,如果网络连通返加1,否则返加0
例:Ping(www.eepw.com.cn)
当然要使用Ethernet库,你要把库文件导入到你的项目中。并在头部加上:
#include "Ethernet.h"
TEthernet myNet;
串口PC通讯
先到网页里下个驱动:
http://share.eepw.com.cn/share/download/id/79366
代码为:
#include
#define D_INTERVAL 1000
void setup()
{
Serial.begin( 38400 ); //
}
void loop()
{
Serial.print("Renesas little fish");
delay(D_INTERVAL);
}
看看初始化的Serial.begin(int speed, port)函数:\
speed: 波特率
port: 使用的串口(如果省略、使用默认的USB转虚拟COM口)
- SCI_NONE : 不使用SCI
- SCI_AUTO : 自动选择SCI
- SCI_USB0 : 使用USB0虚拟COM口
- SCI_SCI0P2x : SCI0 (PIN_P20,PIN_P21/IO0(RxD)、IO1(TxD))
- SCI_SCI2A : SCI2A (PIN_P13,PIN_12/IO30(RxD)和IO31(TxD))
- SCI_SCI2B : SCI2B (PIN_P50,PIN_P52/IO24(TxD)、IO26(RxD)).访问XBee时使用
- SCI_SCI6B : SCI6B (PIN_P32,PIN_P33/IO6(TxD)、IO7(RxD))
向串口输出ASCII数据
Serial.print(val)
Serial.print(val, format)
其中format:BIN:2进制、OCT:8进制、DEC:10进制、HEX:16进制
可参考arduino的介绍:http://arduino.cc/en/Serial/Print
电脑上找个串口调试软件,设定波特率38400,8数据位,1停止位,无校验,打开串口就可以看到接收的数据了。
蜂鸣器蜂鸣代码:
#include
void setup()
{
pinMode(0,OUTPUT);
}
void loop()
{
tone(0, 523);
delay(500);
tone(0, 587);
delay(500);
tone(0, 659);
delay(500);
}
接口函数
void tone ( int pin, int frequency, int duration_ms = 0 )
生成矩形波
pin IO
frequency 输出频率[Hz]
duration_ms 持续时间[ms]。0为持续输出,
TEthernet库的库函数:
函数1:static unsigned long getVersion(version_info *vi);
功能概要:依据vi指针返回TEthernet库的版本信息,
函数2:static void processPackets();
功能概要:该函数要放在主函数中不断地循环执行,以确定是否有需要接收的数据包,同时也能够接收是否有错误发生,该函数依据接收到的数据内容而不断被执行(这句话的意思是说:当有错误发生时,通过该函数的执行,系统会给出报错警告。
函数3:void setHostname (const char * myhostname);
功能概要:该函数设置当SAKURA开发板作为主机时的主机名
函数4:int begin (byte mac [6]);
功能概要:仅依据MAC地址来启动Ethernet库的使用,成功返回1,失败返回0。
函数5: void begin (byte mac [6], byte ip [4]);
函数6:void begin (byte mac [6], byte ip [4], byte dns [4]);
函数7: void begin (byte mac [6], byte ip [4], byte dns [4], byte gateway [4]);
函数8: void begin (byte mac [6], byte ip [4], byte dns [4], byte gateway [4], byte subnet [4]);
功能概要:其它都类似,这里只对函数8作简要说明,依据MAC地址、IP地址、DNS域名解析、网关、子网掩码来启动Ethernet库的使用,成功返回1,失败返回0。
函数9:char * localIP ();
功能概要:返回本地IP地址。
函数10:bool isLinkup ();
功能概要:Ethernet是否已经连接上,成功返回true,失败返回false。
未完待续。。。。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |