之前都是引脚模拟spi通信,最近在做cc2530demo,发现串口可以复用为spi模式,最大时钟4MHz,尾部附带完整程序。
spi初始化
使用串口1配置为spi模式,时钟4MHz
void SPI_Init(void) {
PERCFG |= 0x02; //使用串口1的备用位置2
P1SEL |= 0xE0; // 设置P1.5 P1.6 P1.7 为外设引脚
P1SEL &= ~0x10; // 设置P1.4为io
P1DIR |= 0x10; //设置P1.4为输出
U1BAUD = 0x00;
U1GCR |= 0x11; // BAUD_E = 0 GCR = 17为4MHz时钟
U1CSR &= ~0xA0; // SPI 主模式
}
PERCFG 寄存器是外设控制寄存器,也就是配置串口1 使用引脚2位置

对应的引脚图

主函数
spi的发送和接收与串口使用方法一致,这里发送0-9,用逻辑分析仪抓一下波形
while(1)
{
for(int i = 0; i < 10; i++)
{
OLED_WriteCommand_SPI(i);
UartSendString("spiData", 7);
DelayMS(50);
}
}
逻辑分析仪显示4MHz

gitee
链接: gitee链接
1.如果懂git的直接克隆即可
2.如果不懂git的话,再打开的页面中间偏右上点击《克隆/下载》按钮,再出现的页面右上角有下载zip,相当于下载压缩包,如果需要有更新的话,需要重新下载压缩包
3.该例程在spi文件夹下
799

被折叠的 条评论
为什么被折叠?



