第一周: 使用Jlink实现boot和wifi_driver下载,实际操作与手册有些出入。 1. 打开J-Flash ARM 2. 选CPU型号ST STM32F205RG 3. Flash起始地址08000000,Production选项选中擦除erase,这一步第一次操作是有必要的 4. 擦除芯片Target->Erase chip 5. Production选项programserial number选08000000,擦除Erase没选 6. 打开文件boot.bin,设置起始地址为08000000 7. 下载,弹出擦除窗口选No,至此boot完成 后面开始下载wifi_driver,驱动文件名为EMW316x_WiFi_driver_5.90.230.1.bin。 操作步骤: 1. Flash起始地址080C0000 2. Production选项programserial number选08000000,擦除Erase没选 3. 打开文件EMW316x_WiFi_driver_5.90.230.1.bin,设置起始地址为080C0000 4. 下载,弹出擦除窗口选No,至此wifi_driver下载完成 程序Demo测试,Demo版本MxchipWNet-Demo-EMW316x_V1.12.7z: 1. LED 1) 编译器用的是Keil5.10,所以编译软件修改Option->User路径为C:\Keil\ARM\ARMCC\bin\fromelf.exe 2) cpu选型STM32F205RG(原Demo设置为STM32F215RG),IROM1:0x800C000 0xF8000(这步很重要) 3) 重新选中Jlink调试器,Flash当然是1M 4) 下载 5) LED开始闪烁,串口打印信息: Welcome to WaveShareSTM32F2 series MCU Board Open207V 6) 修改main.c的GPIO_LED_Binky(500)参数可以改变闪烁亮灭时间,修改MX1081_IO.c可以改变IO端口设置,比较一下和F407设置相同。 2. UART UART调试采用串口2,波特率115200 #define USARTx_RX_PIN GPIO_Pin_3 #define USARTx_RX_SOURCE GPIO_PinSource3 #define USARTx_RX_GPIO_PORT GPIOA #define USARTx_RX_GPIO_CLK RCC_AHB1Periph_GPIOA #defineUSARTx_RX_AF GPIO_AF_USART2 #define USARTx_TX_PIN GPIO_Pin_2 #define USARTx_TX_SOURCE GPIO_PinSource2 #define USARTx_TX_GPIO_PORT GPIOA #define USARTx_TX_GPIO_CLK RCC_AHB1Periph_GPIOA #defineUSARTx_TX_AF GPIO_AF_USART2 设置如LED步骤1~4,下载完后后现象,串口打印信息: UART TESET >SYSCLKSource is PLL! >SYS clock = 120MHz >HCLK clock = 120MHz >PCLK1 clock = 30MHz >PCLK2_clock = 60MHz 在接收中断做回显处理。 发送字符A可接收成功回显: USART Hyperterminal Interrupts Receive aword: A USART HyperterminalInterrupts Receive a word: 多处理一次,此为问题一; 发送ASCII码0x31 USART HyperterminalInterrupts Receive a word: HyperterminalInterrupts Receive a word: 1 回显两次并且丢失USART,此为问题2; 两次发送间隔时间较短时,接收数据异常,此为问题三; USART Hyperterminal Interrupts Receive a word: al Interrupts Receivea word: 1 USART Hyperterminal Interrupts Receive a word: ART Hyperterminal Interrupts Receive a word: 1 USART Hyperterminal Interrupts Receive a word: USART Hyperterminal Interrupts Receive a word: 1 USARTHyperterminal Interrupts Receive a word: T HyperterminalInterrupts Receive a word: 1 3. IIC IIC采用的内部IIC总线模式而不是模拟IIC,原来STM32F103X总出现问题用模拟方式,Open1081会不会出现问题待测试。 设置依旧如LED步骤1~4, 实现现象:串口打印信息: EEPROM 24C02 Write Test EEPROM 24C02 Write Test OK EEPROM 24C02 Read Test EEPROM 24C02 Read Test OK 添加一段测试看读取EEPROM-AT24C02数据 for(Addr=0; Addr<256;Addr++) { printf("%d", ReadBuffer[Addr]); if(Addr % 10 == 0) { printf("\n"); } } 串口打印数据为0~255,所以AT24C24写入数据成功 4. SPI 打开工程,重新设置如LED步骤1~4。 SPI采用SPI1通道,SPI1设置最大速度为60M(PLCK2)/32=1.875M(采用32分频,原设置为128分频) SPI_InitStruct.SPI_BaudRatePrescaler= SPI_BaudRatePrescaler_32; 下载程序,实现现象: 串口打印信息,AT45DB041D(4Mbits)前面40个数据写入和读取比较
后面例程还在写,文字表达不好,请各位多多指出不恰之处。
|