当前位置: 首页 > news >正文

CIU32L030系列 串口代码例程和选型 技术讨论 支持

/**

* @brief UART��ʼ��

* @param uartx UART����

* @param uart_init_param UART��ʼ���ṹ��

* @retval std_status_t ���س�ʼ�����ý��

*/

std_status_t std_uart_init(UART_t *uartx,std_uart_init_t *uart_init_param)

{

/* ���� UART �ֳ� ���շ�ģʽ��У��*/

MODIFY_REG(uartx->CR1,

(UART_CR1_WL | UART_CR1_TE | UART_CR1_RE | UART_CR1_PTS | UART_CR1_PEN),

(uart_init_param->wordlength | uart_init_param->direction | uart_init_param->parity));

/* ����UARTֹͣλ */

std_uart_set_stopbits(uartx,uart_init_param->stopbits);

/* ������ */

if(std_uart_baudrate_config(uartx,uart_init_param->baudrate) != STD_OK)

{

return STD_ERR;

}

return STD_OK;

}


/**

* @brief UARTȥ��ʼ��

* @param uartx UART����

* @retval ��

*/

void std_uart_deinit(UART_t *uartx)

{

if(uartx == UART1)

{

/* ��λUART1 */

std_rcc_apb2_reset(RCC_PERIPH_RESET_UART1);

/* �ر�UART1ʱ�� */

std_rcc_apb2_clk_disable(RCC_PERIPH_CLK_UART1);

}

else if(uartx == UART2)

{

/* ��λUART2 */

std_rcc_apb1_reset(RCC_PERIPH_RESET_UART2);

/* �ر�UART2ʱ�� */

std_rcc_apb1_clk_disable(RCC_PERIPH_CLK_UART2);

}

}


/**

* @brief UART�ṹ���ʼ��

* @param uart_init_struct UART�ṹ��

* @retval ��

*/

void std_uart_struct_init(std_uart_init_t *uart_init_struct)

{

uart_init_struct->baudrate = 115200;

uart_init_struct->wordlength = UART_WORDLENGTH_8BITS;

uart_init_struct->stopbits = UART_STOPBITS_1;

uart_init_struct->direction = UART_DIRECTION_SEND_RECEIVE;

uart_init_struct->parity = UART_PARITY_NONE;

}


/**

* @brief ����UART������

* @param uartx UART����

* @param baudrate ������

* @retval std_status_t ���ز��������ý��

*/

std_status_t std_uart_baudrate_config(UART_t *uartx, uint32_t baudrate)

{

uint32_t pclk;

uint32_t brr_value;

/* ��ȡUARTʱ��Ƶ�� */

pclk = std_rcc_get_pclkfreq();

brr_value = (((pclk) + ((baudrate) >> 1U)) / (baudrate));

/* BRRȡֵ��Χ[0x10,0xFFFF], �������0x10(0d16) */

if ((brr_value >= UART_BRR_MIN) && (brr_value <= UART_BRR_MAX))

{

uartx->BRR = (uint32_t)brr_value;

return STD_OK;

}

else

{

return STD_ERR;

}

}


/**

* @}

*/

#endif /* STD_UART_PERIPHERAL_USED */

/**

* @}

*/

/**

* @}

*/

主要型号讨论

http://www.jsqmd.com/news/1154524/

相关文章:

  • GetQzonehistory:5分钟快速导出QQ空间全部历史说说的终极指南
  • 如何轻松搞定40+平台直播录制?DouyinLiveRecorder完全指南
  • openEuler SDS SIG:Curve分布式存储技术架构解析
  • UniFi全网漏洞检测与加固实战|11个高危CVE(含10.0满分)修复部署清单
  • OpenCloudOS 9实战:OCManager轻量化运维全流程解析
  • Meta发布Muse Image/Video双模型、谷歌Gemini API托管智能体重大更新、Claude Cowork推出移动网页版 | 7月8日 AI日报
  • 给Photoshop装上AI超能力:SD-PPP插件终极指南
  • 如何永久备份QQ空间:GetQzonehistory三步完整指南
  • PHP 8.1.0-dev 后门与XXE漏洞实战:从信息搜集到RCE的3步利用
  • 7个终极技巧:深度掌握wiliwili跨平台B站客户端的完整配置方案
  • Unity光照系统核心解析:从原理到实战,掌握烘焙、实时与混合光照
  • H3C防火墙旁挂使用VRF引流
  • User::getName — 方法引用
  • 如何快速完成插件安装:BetterNCM-Installer完整操作手册
  • 【USB 传视音频的那些事01】为什么你的 USB 摄像头不用装驱动?
  • 187、并发踩坑合集:竞态条件、死锁、活锁、aiohttp 连接泄漏与调试工具
  • 工业负载控制方案:TPD2017FN与PIC18F4610应用解析
  • 嵌入式音频开发:MKV42F256VLH16与CMT-8540S-SMT硬件选型与优化
  • 基于PAM8124与STM32的D类音频放大方案设计
  • 给 WorkBuddy 接入AI 音乐 MCP,让 Agent 真正生成音乐 demo
  • MAX77654与PIC18F87K22构建高效电源管理系统
  • 科普长文:四大真实案例拆解,GF 聚合物管路技术如何适配不同场景的数据中心液冷方案
  • Claude Code 前后端联调实战:让 Claude 帮你打通 REST API
  • TLA2518与TM4C123GH6PZL的ADC系统设计与优化
  • 巨有科技:市集品牌联名周边开发 延伸盈利与传播边界
  • 终极无损视频剪辑指南:如何用LosslessCut极速处理视频音频文件
  • 北光恒电实操总结泰克MSO46示波器遇到故障该怎么办
  • 让 Claude Code 学会走命令行这条近路
  • WeChatIntercept终极指南:3分钟掌握微信防撤回完整方案
  • 工业负载控制方案:TPD2017FN与PIC32MZ的智能驱动设计