看串口和SPI通讯例程中,SPI部分的初始化为: /* Initialize SPI in Slave mode */ SPI_Init(SPI_FIRSTBIT_LSB, SPI_BAUDRATEPRESCALER_2, SPI_MODE_SLAVE, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT,(uint8_t)0x07); 我的IC是3线的,最先发送的是指令还是数据选择位,后面的一字节是高位在前,其它的我就都不明白了 求高人指点。 |
f407与上位机,高速通讯。
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
消防二总线通讯?
有没有用过数字式mems麦克风的,想问下SPI通讯的问题
stm32f103 CAN通讯多帧发送问题?
ST 电机电机工作站,就是那个workbench的通讯协议是啥啊?
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
stm32F1单片机iic主从模式通讯
串口通讯偶尔出现故障,不能自行恢复,如何解决
stm32f103zet6串口通讯过程中报ORE错误
/* Initialize SPI in Slave mode */
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_4, SPI_MODE_SLAVE, SPI_CLOCKPOLARITY_LOW,
SPI_CLOCKPHASE_1EDGE, SPI_DATADIRECTION_1LINE_TX, SPI_NSS_SOFT,(uint8_t)0x07);
SPI_SendData();就可以发送一字节的数据了,可是那位应该最先发送的指令/数据选择位应该怎么发送下去呢?
即使不看手册。库函数对各个参数都有详细注释。
SPI通信模式、数据高位先发还是低位先发、极性、主从模式、时钟、片选模式。。。。
哥,我不是不看
是找不到呀
请教:在哪儿有关于这种3线9bit模式下,这个指令和数据选择位的说明或设置?我看库函数好像都是4线,8bit模式。
至于数据位,不知你是哪里看出是9位了。
STM8S系列有个参考手册,RM0016,这个网站的资料下载区就可以找到。
哥哥,不是我在哪里看出了9位,我的被控制的器件要求的就是9位呀!
要求在总线启动后,第一位传送过去的是选择指令还是数据的,然后的8位才是从高到低的要传送数据。
最先传的这一位是用来区分将要传给IC的是寄存器还是给寄存器的参数的。
这种3线9位的SPI口相信大家搞程序的都用IO模拟过的。
我纠结的正是在库函数中看不到如何设置这最先传送的关键一位的。
你的被控器件是个什么东西?
如果你的器件必须这样,除了用软件模拟外;
再就是是否可以考虑把这个特殊位设计一个特殊字节用来识别命令还是数据。
感谢哥哥的回复,我现在也决定用IO口模拟了。
可是说实话,我对STM8S才刚刚接触,依照例程写的IO口输出方波程序都没有输出。
求您老给看下问题出在哪里:
#include "stm8s.h"
void Delay(u32 nCount)
{
while (nCount != 0) nCount--;
}
int main(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
GPIO_Init(GPIOB,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_SLOW );
while(1)
{
GPIO_WriteReverse(GPIOB, GPIO_PIN_5);
Delay(10);
}
}
你的PB5配置有问题,不能这样配。要配置为OD,而且外边还得加上拉。它是个真开漏脚,细节看手册。