سلام علیکم دوستان من چند وقت پیش ماژول nrf24l01 را با stm8 راه اندازی کردم خیلی هم خوب کار میکرد ولیکن بدلیل اینکه pcb را اشتباه کشیده بودم و و طرف هم روی تعداد زده بود حالا بدلیل جابجا بودن پایه ها مجبورم از spi نرافزاری استفاده کنم از تابع زیر هم به همین عنوان استفاده کردم ولیکن متاسفانه این تابع اصلا درست کار نمیکند نمیدونم باید چطور دیگری بنوسم اگر راهنمایی کنید ممنون میشنم
unsigned char spi_soft(unsigned char dat)
{
unsigned char cnt = 8;
while (cnt--) {
if (dat & 0x80) HI_SDO;
else LOW_SDO;
HI_SCK;
dat <<= 1;
if (GPIO_ReadInputPin(GPIOC, GPIO_PIN_7)) dat++;
LOW_SCK;
}
return dat;
}