Image
Image

王派oo

+ 关注

粉丝 0     |     主题 19     |     回帖 308

stm32串口占用时间、消耗CPU及最大中断时间的深度分析,探寻一种更有效的串口发送方式
2024-4-14 13:45
  • ST MCU
  • 18
  • 2426
  数据采用数据包的形式接收,接收后存放于缓存区,通过判断数据头和数据尾(可变)来判断数据的“包”及有效 ...  
  if( Uart2_Sta ) { for(tx2=0;tx2  
  实例四: void USART2_IRQHandler() { if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中断产生 ...  
  if( Uart2_Tx != Uart2_Rx ) { USART2_SendByte(Uart2_Buffer[Uart2_Tx]); //发送数据 Uart2_Tx++; Uart2_T ...  
  实例三: vvoid USART2_IRQHandler() { if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中断产生 ...  
【免费评测】速来 支持双电机驱动RISC-V 32位MCU APT32F173开发板 抢先体验!
1643156713
  • 66
  • 6694
  帖子因隐私问题而隐藏  
单片机STM32F1随机数生成探索与实践(基于CUBEMX和KEIL5)
2023-12-20 15:31
  • ST MCU
  • 14
  • 1151
  本部分完整的代码如下,由于使用FreeRTOS,此处仅展示产生随机数这个进程的代码:#include #include #inc ...  
  运行效果如图,可以快速产生随机数,且满足要求:  
  亦可将此方法与实时时钟结合使用,即:  
  使用该方法后,代码如下(此处使用TIM3):  
  需要手动配置地方如图中黄色区域所示,其余部分默认即可。其中PSC分频器配置可选择其他值,不要选太大否则 ...  
  ......  
  定时器可以工作在很高的频率,并设置定时器为自动重装模式,即可周而复始得产生快速变化得数值。定时器配置 ...  
  这样虽然可以产生随机数,但是不能满足测试需求,因为笔者需要快速产生若干随机数用于测试排序算法。所以必 ...  
  从图中可以清晰地看到,每秒内,产生的随机数相同。使用该方法若想产生真随机数,则只能每秒产生一个。如 ...  
  该代码将时间作为随机数种 子,即每秒都会改变,实际测试如下图所示:  
  注意:在使用STM32的RTC时,无论是仅需要时间还是仅需要日期,读取时都需要日期和时间全部读取,且必须先读 ...  
  读取时间的代码如下: RTC_DateTypeDef date_info; RTC_TimeTypeDef time_info; HAL_RTC_GetTime(&hr ...  
  首先是实时时钟的方式 实时时钟的配置如下:  
  经测试,每次生成随机数时,必须给不一样的种子,否则生成的随机数将会相同。 随机数种子产生的方式有很多 ...  
2
3
近期访客