acm32串口发送break

在这里插入图片描述
在这里插入图片描述
acm32与st不同的是acm32发送break头不能自动硬件复位。
解决方法
主要流程:
1)- 配置 UART_BCNT 寄存器的 BCNT_VALUE 为 13。
2)- 同步使能 UART_CR3.BRK 位和 UART_BCNT. BCNT_START 位。
3)- 访问 UARTISR.BCNTI 位,等待置 1;或者使能中断,等待 BCNTI 中断。
4)- 清零 UART_CR3.BRK 位。

UART1->CR3 |= 1<<5;     //FIFO使能
	UART1->CR3 |= (5<<10);  //仅剩1个数据到完全为空变化时才会产生中断
	UART1->CR3 |= (5<<13);  //接收 FIFO 变非空(接收FIFO收到1个数据)
	
	UART1->BCNT = 13;     
	UART1->BCNT |= 1<<24;//比特计时
	UART_SendBreak(UART1);

等待比特计时结束,软件清零

	if(((UART1->ISR) & 1<<12)) {
		UART1->CR3 &= ~UART_CR3_BRK;
		UART1->ISR |= (1<<12);
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值