工具/软件:Code Composer Studio
您好!
我想设置一个从 MSP430F5529到显示屏的 SPI 通信。 我正在使用 libary 来控制显示、但我必须设置 SPI 协议以实现更快的传输。
库有四个函数(用于传输)、按以下顺序调用:
U8X8_MSG_BYTE_INIT
U8X8_MSG_BYTE_START_TRANSFER
-
U8X8_MSG_BYTE_SEND
和的任意组合U8X8_MSG_BYTE_SET_DC
U8X8_MSG_BYTE_END_TRANSFER
U8X8_MSG_BYTE_INIT 用于 SPI 的初始化。 U8X8_MSG_BYTE_SEND
该函数用于数据的传输。 我需要发送 arg_int
字节,因为 arg_ptr
它将指向大小为 arg_int
的缓冲区。 芯片选择/从器件选择在 U8X8_MSG_BYTE_START_TRANSFIT 和 U8X8_MSG_BYTE_END_TRANSFERIT 中是韩式的、因此我不必处理它。
我在铭牌中要替换的两条语句:
案例 U8X8_MSG_BYTE_INIT: P3SEL |= BIT0+BIT1 + BIT2;// P3.0、1、2选项选择 MOSI MISO CLK UCB0CTL1 |= UCSWRST;//**将状态机置于复位状态** UCB0CTL0 |= UCMST+UCSYNC+UCMSB;//UCMODE_2;// 3引脚8位 SPI 主器件 // MSB、时钟极性高 UCB0CTL1 |= UCSSEL_2;// SMCLK 时钟 Auswahl UCB0BR0 = 0x04;//波特率13Mhz /4 UCB0BR1 = 0;//时钟频率由 UCB0BR0 + UCB0BR1 * 256缩放 UCB0CTL0 &=~UCCKPL;//时钟极性 UCB0CTL0 &=~UCCKPH;//时钟相位 UCB0CTL1 &=~UCSWRST; UCB0IE |= UCRXIE+UCTXIE;//启用 USCI_B0 RX+TX 中断 中断;
和:
uint8_t *数据;
案例 U8X8_MSG_BYTE_SEND: 数据=(uint8_t *) arg_ptr; while (!(UCB0IFG&UCTXIFG));// USCI_B0 TX 缓冲区准备就绪? while (arg_int >0) { while (!(UCB0IFG&UCTXIFG));// USCI_B0 TX 缓冲区准备就绪? _DELAY_CYCLES (20); P2DIR |= BIT3; P2OUT |= BIT3; UCB0TXBUF =*数据; arg_int--; Data++; } 中断;
我现在在故障排除中遇到了几天的问题。 我已经检查了许多示例和数据表、但我找不到故障/故障、
如果有一些帮助、我将不胜感激。 谢谢