前言:
感谢平台给我这个评测的机会。
我非常珍惜这次评测和学习的机会。
这是第一次接触ME32的产品,需要时间来学习。
就是一个简单的工程,也折腾了好久。也正是因为折腾,这才印象深刻,学习的扎实。
也希望后续有机会学习和认识更多更好的产品。

1-准备工作:
台式机+ Windows10 Pro
Keil 5.38A
Jlink+敏矽微ME32F103
microUSB数据线
   hardware.png

  2-开发环境配置
本人使用的是jlink,比较古老的版本。
打开样板工程后,会有弹出

forum.jpg
forum.jpg
我选择的是M3,是可以使用的。
forum.jpg

3-实现功能
1-GPIO操作,LED点亮
2-串口通信测试
3-上位机控制LED状态

4-代码编写
首先是串口配置:
  PA2_INIT(PA2_UART1_TX);
PA3_INIT(PA3_UART1_RX);
//initial UART1
UART_Open(UART1,115200,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE,UART_ONE_STOP_BIT);
UART_EnableInt(UART1, UART_RX_INT);
NVIC_EnableIRQ(UART1_IRQn);
UART_Send(UART1, "0123456789", 10);

其次是LED的GPIO配置
PC4_INIT(PC4_GPIO); //define PC4 as gpio
PC_INIT_AS_OUTPUT(IO_PIN4);

最后是串口通信,并控制LED的状态。
void UART1_IRQHandler(void)
{
   if (UART1->LSR_b.RDR)
  {
   if((UART1->LSR_b.THRE))
   {
    ch=UART1->RBR;
    //UART1->THR=ch;
   }
   if(ch=='1')
   {
    //printf("LedON\r\n");
    UART_PutString(UART1,(uint8_t *)("LedON\r\n"));
    GPIO_ResetPins(PC, IO_BIT_PIN4);
   }
   else if(ch=='0')
   {
    //printf("LedOFF\r\n");
    UART_PutString(UART1,(uint8_t *)("LedOFF\r\n"));
    GPIO_SetPins(PC, IO_BIT_PIN4);   
   }
  }  
}

下位机收到字符“1”是,点亮LED。
下位机收到字符“0”是,点亮LED。
下位机收到其它字符,无响应。
5- 验证结果
forum.jpg
  下位机收到字符“1”是,点亮LED,并发送“LedON”
下位机收到字符“0”是,关闭LED。并发送“LedOFF”
下位机收到其它字符,无响应。
6-遇到问题:
a-我的Jlink下载时,必须将BOOT置零,也就是必须上跳线帽,否则下载失败并死机的概率很大,只能首次成功。
b-ISP下载,也是失败,不知道为什么。不管BOOT状态如何都不行。
forum.jpg

后续慢慢研究吧。
不管如何,板子已经跑起来了。