使用PKE8720DF-C13-F10(AMB26)开发板——回送用户输入的8个字符(基于UART实验--中断)

前面写的这篇文章:使用PKE8720DF-C13-F10(AMB26)开发板——回送用户输入的单个字符(基于UART实验),可以作为这篇文章的铺垫,按照前面的文章的说明,需要准备好必要的材料(特别是USB转TTL adapter)并且接好线,这里还是使用开发板的PB19/PB18作为TX/RX与USB转TTL adapter的RX/TX对接进行测试。

本篇文章着重于代码修改与实验结果展示。

本实验的代码位于~\ambd_sdk\project\realtek_amebaD_va0_example\example_sources\UART\raw\uart_stream_irq\src\main.c,需要做一些修改才能满足用户的使用需求。

先修改TX/RX对应的pin脚,

接着修改main函数如下(其他部分保持不变):

void main(void)
{
	UART_OBJ uart_obj;
	uart_obj.UartIndex=uart_get_idx(UART_DEV);
	uart_obj.RxCount=0;
	uart_obj.TxCount=0;
    u8 i=0;
	
	//config pin*/
	Pinmux_Config(UART_TX, PINMUX_FUNCTION_UART);
	Pinmux_Config(UART_RX, PINMUX_FUNCTION_UART);
	PAD_PullCtrl(UART_TX, GPIO_PuPd_UP);   //Tx/Rx pin should pull up
	PAD_PullCtrl(UART_RX, GPIO_PuPd_UP);

	RCC_PeriphClockCmd(APBPeriph_UART0, APBPeriph_UART0_CLOCK, ENABLE);

	UART_StructInit(&uart_obj.UART_InitStruct);
	uart_obj.UART_InitStruct.Parity=RUART_PARITY_DISABLE;
	UART_Init(UART_DEV, &uart_obj.UART_InitStruct);
	UART_SetBaud(UART_DEV,38400);
	UART_RxCmd(UART_DEV, ENABLE);

	InterruptRegister((IRQ_FUN)uart_irq, UART_DEV_TABLE[uart_obj.UartIndex].IrqNum, (u32)&uart_obj, 10);
	InterruptEn(UART_DEV_TABLE[uart_obj.UartIndex].IrqNum, 10);

	uart_int_recv(&uart_obj,rx_buf,8);

	while (1) {

#if 1
		if (!tx_busy) {
            if(i == 0)
            {
			    uart_send_string(&uart_obj, "Please Input(8 characters): \r\n");
                i++;
            }
		}
#endif
		if (rx_done) {
			uart_send_string(&uart_obj,rx_buf);
            uart_send_string(&uart_obj, "\r\nPlease Input(8 characters): \r\n");			
			rx_done = 0;
			uart_int_recv(&uart_obj,rx_buf,8);
		}
	}
}

修改之后替换/project/realtek_amebaD_va0_example/src/src_hp里面的main.c,make all生成3个bin文件:

km0_boot_all.bin

km4_boot_all.bin

km0_km4_image2.bin

然后download这三个bin文件到板子。

打开Tera Term,按照前面文章的建议设定好参数。

按开发板上的reset按键重置并启动板子,可以看到Tera Term上面会显示:

往里面一次输入8个字符,可以看到:

 

多尝试几次,可以看到实验结果符合预期。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值