Настройка Ethernet. Отправка UDP пакета средствами.
This commit is contained in:
@@ -53,6 +53,7 @@ static void MX_FMC_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
void write_isa(uint16_t addr, uint16_t data);
|
||||
uint16_t read_isa(uint16_t addr);
|
||||
void sock_init(struct udp_pcb * pcb);
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
@@ -67,7 +68,6 @@ uint16_t read_isa(uint16_t addr);
|
||||
int main(void)
|
||||
{
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
/* MCU Configuration--------------------------------------------------------*/
|
||||
@@ -90,24 +90,32 @@ int main(void)
|
||||
MX_GPIO_Init();
|
||||
MX_LWIP_Init();
|
||||
MX_FMC_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
/* USER CODE BEGIN 2 */
|
||||
struct udp_pcb * pcb = udp_new();
|
||||
sock_init(pcb);
|
||||
const char* msg = "hello world1234";
|
||||
struct pbuf *p = pbuf_alloc(0, 100, PBUF_RAM);
|
||||
uint32_t br_addr = ipaddr_addr("10.1.1.5");
|
||||
u16_t dst_port = 50000U;
|
||||
p->len = strlen(msg);
|
||||
p->tot_len = p->len;
|
||||
strcpy(p->payload, msg);
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
/* USER CODE BEGIN WHILE */
|
||||
/* USER CODE BEGIN WHILE */
|
||||
while (1)
|
||||
{
|
||||
MX_LWIP_Process();
|
||||
//write_isa(0x100, 0x1111);
|
||||
//write_isa(0x102, 0x1111);
|
||||
//read_isa(0x1);
|
||||
read_isa(0x1);
|
||||
read_isa(0x4);
|
||||
//read_isa(0x8);
|
||||
//read_isa(0x10);
|
||||
//read_isa(0x20);
|
||||
//write_isa(0x110, 0x5555);
|
||||
//write_isa(0x108, 0xaaaa);
|
||||
//read_isa(0x2);
|
||||
//read_isa(0x4);
|
||||
|
||||
err_t errok = udp_sendto(pcb, p, (ip_addr_t*)&br_addr, dst_port);
|
||||
HAL_Delay(100);
|
||||
read_isa(0x4);
|
||||
}
|
||||
/* USER CODE END WHILE */
|
||||
}
|
||||
@@ -167,7 +175,6 @@ static void MX_FMC_Init(void)
|
||||
/* USER CODE END FMC_Init 0 */
|
||||
|
||||
FMC_NORSRAM_TimingTypeDef Timing = {0};
|
||||
FMC_NORSRAM_TimingTypeDef ExtTiming = {0};
|
||||
|
||||
/* USER CODE BEGIN FMC_Init 1 */
|
||||
|
||||
@@ -188,7 +195,7 @@ static void MX_FMC_Init(void)
|
||||
hsram1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS;
|
||||
hsram1.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE;
|
||||
hsram1.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE;
|
||||
hsram1.Init.ExtendedMode = FMC_EXTENDED_MODE_ENABLE;
|
||||
hsram1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE;
|
||||
hsram1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE;
|
||||
hsram1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE;
|
||||
hsram1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ONLY;
|
||||
@@ -202,15 +209,8 @@ static void MX_FMC_Init(void)
|
||||
Timing.DataLatency = 17;
|
||||
Timing.AccessMode = FMC_ACCESS_MODE_A;
|
||||
/* ExtTiming */
|
||||
ExtTiming.AddressSetupTime = 15;
|
||||
ExtTiming.AddressHoldTime = 15;
|
||||
ExtTiming.DataSetupTime = 255;
|
||||
ExtTiming.BusTurnAroundDuration = 15;
|
||||
ExtTiming.CLKDivision = 16;
|
||||
ExtTiming.DataLatency = 17;
|
||||
ExtTiming.AccessMode = FMC_ACCESS_MODE_A;
|
||||
|
||||
if (HAL_SRAM_Init(&hsram1, &Timing, &ExtTiming) != HAL_OK)
|
||||
if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
|
||||
{
|
||||
Error_Handler( );
|
||||
}
|
||||
@@ -251,14 +251,23 @@ static void MX_GPIO_Init(void)
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 4 */
|
||||
|
||||
void sock_init(struct udp_pcb * pcb)
|
||||
{
|
||||
uint32_t ipaddr = ipaddr_addr("10.1.1.69");
|
||||
u16_t port = 50069U;
|
||||
err_t errok = udp_bind(pcb, (ip_addr_t*)&ipaddr, port);
|
||||
return;
|
||||
}
|
||||
|
||||
uint16_t read_isa(uint16_t addr)
|
||||
{
|
||||
return *(uint16_t*)(ISA_BASE_RD + addr);
|
||||
return *(uint16_t*)(ISA_BASE_RD + (addr << 1));
|
||||
}
|
||||
|
||||
void write_isa(uint16_t addr, uint16_t data)
|
||||
{
|
||||
*(uint16_t*)(ISA_BASE_WR + addr) = data;
|
||||
*(uint16_t*)(ISA_BASE_WR + (addr << 1)) = data;
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
||||
|
||||
@@ -134,11 +134,13 @@ static void HAL_FMC_MspInit(void){
|
||||
PD4 ------> FMC_NOE
|
||||
PD5 ------> FMC_NWE
|
||||
PD7 ------> FMC_NE1
|
||||
PE0 ------> FMC_NBL0
|
||||
PE1 ------> FMC_NBL1
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
|
||||
|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
|
||||
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
|
||||
|GPIO_PIN_15;
|
||||
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
@@ -243,11 +245,13 @@ static void HAL_FMC_MspDeInit(void){
|
||||
PD4 ------> FMC_NOE
|
||||
PD5 ------> FMC_NWE
|
||||
PD7 ------> FMC_NE1
|
||||
PE0 ------> FMC_NBL0
|
||||
PE1 ------> FMC_NBL1
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
|
||||
|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
|
||||
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
|
||||
|GPIO_PIN_15);
|
||||
|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
|
||||
|
||||
HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|
||||
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
|
||||
|
||||
Reference in New Issue
Block a user