分享一个MSP430硬件SPI驱动595的程序...
// 初始化SPI硬件U0CTL= SWRST; // **Put state machine in reset**
ME1 |= USPIE0; // 通过 MEx SFRs (USPIEx) 启用 USART 模块
U0CTL= CHAR + SYNC + MM + SWRST; //8-bit SPI master
U0TCTL = CKPH + SSEL1 + STC; // 相位,时钟,3-pin
U0BR1= 0; // 设置波特率分频系数,U0BR1:U0BR0>=2
U0BR0= 2;
U0MCTL = 0; // SPI 模式应被设置到 00h
U0CTL &= ~SWRST; // **Initialize USCI state machine**
//刷新数据...
U0TXBUF = DIG_MASK; // 发送新位
while( !(IFG1 & UTXIFG0)); //等待发送缓存空...
U0TXBUF = temp; // 发送新段
while( !(TXEPT & U0TCTL)); //这里必须是等待发送器发送完毕,才能够更新RCLK,否则数据乱码....
RCLK_SET();// 更新显示
RCLK_RESET();
采用硬件发送595数据,发送两次,只需要大约65个CLK,
如果再优化一下的话,应该50个CLK就能够发送完毕....
而软件模拟的话,需要接近600个CLK,
CPU占用率能够降低到10% 楼主辛苦大晚上来分享资料谢谢了 CLK指的是时钟周期吧 miaoguoqiang 发表于 2016-3-17 09:22
CLK指的是时钟周期吧
嗯,就是MCLK
页:
[1]