ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
265445 Топик полностью
koyodza (04.08.2011 15:35, просмотров: 97) ответил Гудвин на Давно хотел спросить: Как ты подсоединяешь CP2200 к STM? Ногодрыжишь?
да, почти что. В новые проекты закладывать не планирую Использую мультиплексированный адрес (СР2201), данные вывожу через РС0..РС7, остальные сигналы разбросаны. Вот кусок: #define CP2201_DATA_SET(d) CP2201_DATA_GPIO->BSRR=(d&255),CP2201_DATA_GPIO->BRR=((~(d))&255) #define CP2201_DATA_ACCESS() CP2201_DATA_GPIO->CRL=0x33333333UL #define CP2201_DATA_RELEASE() CP2201_DATA_GPIO->CRL=0x44444444UL /////////////////////////////////////////////////////////////////////////////// __private void CP2201_Write(BYTE adr, BYTE data) { CP2201_ALE_GPIO->BSRR = CP2201_ALE_PIN; // ALE = 1; CP2201_DATA_ACCESS(); // DIR MCU->CP2201 CP2201_DATA_SET(adr); // ADR CP2201_ALE_GPIO->BRR = CP2201_ALE_PIN; // ALE = 0; CP2201_DATA_SET(data); // DATA Write CP2201_WR_GPIO->BRR = CP2201_WR_PIN; // WR = 0; CP2201_WR_GPIO->BRR = CP2201_WR_PIN; CP2201_WR_GPIO->BSRR = CP2201_WR_PIN; // WR = 1; } __private BYTE CP2201_Read(BYTE adr) { CP2201_ALE_GPIO->BSRR = CP2201_ALE_PIN; // ALE = 1; CP2201_DATA_ACCESS(); // DIR MCU->CP2201 CP2201_DATA_SET(adr); // ADR CP2201_ALE_GPIO->BRR = CP2201_ALE_PIN; // ALE = 0; CP2201_DATA_RELEASE(); // DIR MCU<-CP2201 CP2201_RD_GPIO->BRR = CP2201_RD_PIN; // RD = 0; CP2201_DATA_RELEASE(); CP2201_RD_GPIO->BRR = CP2201_RD_PIN; CP2201_DATA_RELEASE(); CP2201_RD_GPIO->BRR = CP2201_RD_PIN; CP2201_DATA_RELEASE(); BYTE x = (BYTE)CP2201_DATA_GPIO->IDR; // DATA Read CP2201_RD_GPIO->BSRR = CP2201_RD_PIN; // RD = 1; return x; }