在【MM32 eMiniBoard试用连载】+开箱+软件中配置完成后,
给板cn2连接电脑,看到板子上的4个LED闪烁。蜂鸣器响了下。
查下eMiniBoard开发板用户手册, 内嵌 MM32-LINK-OB 在线仿真器,支持 SWD 调试接口以及智能连接的 CDC 虚拟串口
在http://www.mindmotion.com.cn/download.aspx?cid=2542
下载MM32L3xx(n) 库函数和例程
准备按手册编辑一小程序。
在Boards_MM32L3xx_n\MBL373PF_n_lib\UART\UART_Print_NVIC\KEIL_PRJ路径下加载UART_Print_NVIC.UVprojx文件。
原main程序
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "uart_nvic.h"
/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºint main (void)
**¹¦ÄÜÃèÊö £º¿ª»úºó£¬´®¿Ú·¢ËÍÊý¾Ý£¬²¢µÈ´ýÉÏλ»ú·¢ËÍÐÅÏ¢£¬È»ºóÔÙ´òÓ¡³öÀ´
**ÊäÈë²ÎÊý £º
**Êä³ö²ÎÊý £º
********************************************************************************************************/
int main(void)
{
u8 t;
u8 len;
u8 mData;
u16 times=0;
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2
uart_nvic_init(115200); //´®¿Ú³õʼ»¯Îª115200
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
while(1)
{
IF(UART_RX_STA&0x8000)
{
len=UART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È
printf("\r\nÄú·¢Ë͵ÄÏûϢΪ:\r\n");
for(t=0;t<len;t++)
{
while (UART_GetFlagStatus(UART1, UART_IT_TXIEN) == RESET);
UART_SendData(UART1, (u8)UART_RX_BUF[t]);
mData=(u8)UART_RX_BUF[t];
}
printf("\r\n\r\n");//²åÈë»»ÐÐ
UART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nMini Board ´®¿ÚʵÑé\r\n");
}
if(times%200==0)printf("ÇëÊäÈëÊý¾Ý,ÒԻسµ¼ü½áÊø\r\n");
if(times%30==0)LED1=!LED1;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ.
delay_ms(10);
}
}
}
在原程序 mData=(u8)UART_RX_BUF[t];后增加根据包含字符控制led2开关。
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "uart_nvic.h"
/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºint main (void)
**¹¦ÄÜÃèÊö £º¿ª»úºó£¬´®¿Ú·¢ËÍÊý¾Ý£¬²¢µÈ´ýÉÏλ»ú·¢ËÍÐÅÏ¢£¬È»ºóÔÙ´òÓ¡³öÀ´
**ÊäÈë²ÎÊý £º
**Êä³ö²ÎÊý £º
********************************************************************************************************/
int main(void)
{
u8 t;
u8 len;
u8 mData;
u16 times=0;
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2
uart_nvic_init(115200); //´®¿Ú³õʼ»¯Îª115200
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
while(1)
{
if(UART_RX_STA&0x8000)
{
len=UART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È
printf("\r\nÄú·¢Ë͵ÄÏûϢΪ:\r\n");
for(t=0;t<len;t++)
{
while (UART_GetFlagStatus(UART1, UART_IT_TXIEN) == RESET);
UART_SendData(UART1, (u8)UART_RX_BUF[t]);
mData=(u8)UART_RX_BUF[t];
if(mData==81)LED2=0;
if(mData==88)LED2=1;
}
printf("\r\n\r\n");//²åÈë»»ÐÐ
UART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nMini Board ´®¿ÚʵÑé\r\n");
}
if(times%200==0)printf("ÇëÊäÈëÊý¾Ý,ÒԻسµ¼ü½áÊø\r\n");
if(times%30==0)LED1=!LED1;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ.
delay_ms(10);
}
}
}
build后
设breakpoint,打开串口调试软件sscom32.exe,F5运行
不知为什么没有收只是发。
|