Open1081使用心得分享-第一周
第一周:
使用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步骤14,下载完后后现象,串口打印信息:
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步骤14,
实现现象:串口打印信息:
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");
}
}
串口打印数据为0255,所以AT24C24写入数据成功
4. SPI
打开工程,重新设置如LED步骤14。
SPI采用SPI1通道,SPI1设置最大速度为60M(PLCK2)/32=1.875M(采用32分频,原设置为128分频)
SPI_InitStruct.SPI_BaudRatePrescaler= SPI_BaudRatePrescaler_32;
下载程序,实现现象:
串口打印信息,AT45DB041D(4Mbits)前面40个数据写入和读取比较
后面例程还在写,文字表达不好,请各位多多指出不恰之处。
好东西
很不错 谢谢楼主 分享
真的是好东西,不枉我打开这个页面,感谢楼主,慷慨解囊是一种美德 啊!学习走起!