//2death's note: CODE nên để trong thẻ CODE để bài viết gọn gàng, dễ xem.
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
uint8_t ui8PinData=2,i;
int main(void) {
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PINGPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,4);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,4);
}
cho em hỏi sao code em viết thế này, đo các chân giao tiếp với 595 dữ liệu ra đúng, SDO là pin1, SCK là pin 3. Nhưng output của 595 lại ra lúc toàn 1, lúc 4 chân đầu 1, còn lại 0.
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
uint8_t ui8PinData=2,i;
int main(void) {
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PINGPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,4);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1,2);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3,8);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0x00);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,4);
}
cho em hỏi sao code em viết thế này, đo các chân giao tiếp với 595 dữ liệu ra đúng, SDO là pin1, SCK là pin 3. Nhưng output của 595 lại ra lúc toàn 1, lúc 4 chân đầu 1, còn lại 0.