主题中讨论的其他器件:HALCOGEN
工具/软件:Code Composer Studio
您好!
Raspberry PI 支持 LED 矩阵(RPi LED 矩阵 anleitung.joy-it.net/.../rpi_led_matrix.pdf)、并使用两个 MAX7219 (链接: https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf)。
在此项目中、我将使用连接到矩阵的 SPI4、如下所示:
5V --> (J3_Pin 1)
GND -->(J3_PIN2)
CS --> SPI4NCS_1 (J1_pin9)
MOSI --> SPI4MOSI (J2_pin1)
CLK --> SPI4_clk (J10_pin20)
起初,我只是在编写此示例之前尝试使矩阵正常工作,但仍然是:(
代码如下:
/*用户代码开始(0)*/
#include "HL_SPI.h"
#include "HL_Gio.h"
/*用户代码结束*/
/*包含文件*/
#include "hL_system.h"
#include "hL_sys_common.h"
/*用户代码开始(1)*/
#define TEST 0x0F
#define 亮度0x0A
#define SCAN_LIMIT 0x0B
#define decode_mode 0x09
#define 关断0x0C
spiDAT1_t 数据通信 fig1_t;
uint64_t i;
void maxInit();
void TransferCOMMAND (uint16地址、uint16值);
void TransferDATA (uint16地址、uint16值、uint16 v2);
/*用户代码结束*/
/**@fn void main (void)
*@应用程序主函数简介
*@请注意、默认情况下、此函数为空。
*
*此函数在启动后调用。
*用户可以使用此函数来实现应用程序。
*
/*用户代码开始(2)*/
/*用户代码结束*/
void main (void)
{
/*用户代码开始(3)*/
dataconfig1_t.CS_hold = false;
dataconfig1_t.WDEL = true;
dataconfig1_t.DFSEL = SPI_FMT_0;
dataconfig1_t.CSNR = SPI_CS_1;
spiInit();
gioInit();
maxInit();
gioSetDirection (spiPORT4、0x02); //将 CS_1用作 GIO 引脚(也在/SPI4端口/SCS[1]引脚模式 中的 Halcogen 中定义为 GIO)
gioSetBit (spiPORT4、1、1);
_enable_IRQ ();
/*用户代码结束*/
while (1){
for (i=1;i<9;i++){
TransferDATA (I、0xFA、0xAF); //只是一个示例来查看它是否正常工作
}
}
}
/*用户代码开始(4)*/
void maxInit(){
TransferCOMMAND (DECODE_MODE、0x00);//使用正常模式
TransferCOMMAND (亮度、0x03); //亮度级别3
TransferCOMMAND (SCAN_LIMIT、0x07);
对于(i=1;i<9;i++){ // Init all LEDs
TransferDATA (I、0x00、0x00);
}
TransferCOMMAND (SHUTDOWN、0x01);
TransferCOMMAND (TEST、0x00);//正常模式
}
void TransferCOMMAND (uint16地址、uint16值){
gioSetBit (spiPORT4、1、0);
TransmitData (spiREG4、&dataconfig1_t、1、地址);//发送地址。
TransmitData (spiREG4、&dataconfig1_t、1、value);//传输该值。
TransmitData (spiREG4、&dataconfig1_t、1、地址);//发送地址。
TransmitData (spiREG4、&dataconfig1_t、1、value);//传输该值。
gioSetBit (spiPORT4、1、1);
};
void TransferDATA (uint16地址、uint16值、uint16 v2){
gioSetBit (spiPORT4、1、0);
TransmitData (spiREG4、&dataconfig1_t、1、地址);//发送地址。
TransmitData (spiREG4、&dataconfig1_t、1、value);//传输该值。
TransmitData (spiREG4、&dataconfig1_t、1、地址);//发送地址。
TransmitData (spiREG4、&dataconfig1_t、1、v2);//传输第二个值。
gioSetBit (spiPORT4、1、1);
}