0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CIU32F003小家电接口调试代码

jf_97280307 来源:csdn 作者:csdn 2025-09-29 11:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目的是给小家电行业的工程师作为代码参考
通过一个接口,去除多于的繁琐的io设置和io功能引脚复用功能,功能比较简单和常用。
目前是第v0.6版本,功能上难免不能面面俱到,没有测试人员测试

最近更新时间:
2025/5/15 添加了tim1的互补输出逻辑,改了tim3pwm输出时钟设置
2025/5/28 添加了tim1的互补关闭和开启
2025/5/28 处理SN_EXIT模块:所有回调的事件都是同一件问题
2025/5/28 SN_ADC模块:添加了获取mcu VDD值的接口
2025/9/12 修改tim3的4通道,只有八位pwm的输出的硬件设置导致的周期抖动,重新添加另一套更方便的adc接口
2025/9/27 添加小工具系列 - 8位环形消息队列,用于做低功耗软件调度架构


每个文件都是单独的,如果用不上的可以去掉,不影响其他的文件.从而节约空间资源。各个模块的io使用,无防冲突功能,请自行检查io是否被多次使用。

SN_Port模块都是基于华大官方STD库,要结合官方STD库一起使用。


SN_Port模块包含的文件列表:

1.SN_GPIO.c
接口:
void SN_GPIO_PIN_init(GPIO_t* gpiox , uint32_t pin_mask , uint32_t GPIO_MODE ,uint32_t GPIO_PULL ,uint32_t output_type); //设置对应的io工作状态
uint8_t SN_GPIO_PIN_set(GPIO_t* gpiox, uint32_t pin_mask); //设置io输出高电位 (前提是io工作在输出模式)
uint8_t SN_GPIO_PIN_reset(GPIO_t* gpiox, uint32_t pin_mask); //设置io输出低电平 (前提是io工作在输出模式)
uint8_t SN_GPIO_PIN_get(GPIO_t* gpiox, uint32_t pin); //读取io的输入输出电平
uint8_t SN_GPIO_PIN_toggle(GPIO_t* gpiox, uint32_t pin_mask); //反转io输出状体(前提是io工作在输出模式)
void SN_GPIO_Deinit(GPIO_t * GPIOx); //GPIO去初始化

2.SN_EXIT.c
接口;

uint8_t SN_EXIT_set(GPIO_t* gpiox,uint32_t pin_mask,uint32_t pull ,void (*fun) (void),uint32_t EXTI_TRIGGER ,uint32_t NVIC_PRIO_x); //设置外部触发中断


3.SN_ADC.c / SN_ADC_2.c
接口:
uint8_t SN_ADC_IN_init(uint32_t channel); //初始ADC通道
void SN_ADC_start(void); //开始进行ADC转换,(选择编译模式,不同编译模式有不同用法)
uint16_t SN_ADC_Get(uint32_t channel); //获得对应通道的ADC转换值
float SN_ADC_Get_float(uint32_t list_next); //获得对应通道的ADC信号的电压值
float SN_ADC_MCU_VDD(void); //获取MCU的当前时刻的vdd值
void SN_ADC_Deinit(void); //ADC去初始化

/*ADC_2模块接口函数:专给单通道调用*/
void SN_ADC_II_Init(uint16_t ADC_CH_x); //初始化ADC通道对应引脚
uint32_t SN_ADC_II_GET(uint32_t ADC_CH_x); //获取adc通道值
uint32_t SN_BGR_VDD(uint32_t adc_val); //获取mcu的vdd值


4.SN_PWM.c
接口:
uint8_t SN_PWM_TIM3_OUT_init(uint16_t CHANNEL,uint32_t Duty_value); //设置定时器3输出PWM通道
uint8_t SN_PWM_TIM1_OUT_init(uint16_t CHANNEL,uint32_t Duty_value); //设置定时器1输出PWM通道
void SN_PWM_TIM1_OUT_Complementary(uint16_t CHANNEL_N); //设置定时器1的互补互补pwm通道引脚
void SN_PWM_TIMx_CH_Duty(TIM_t *timx,uint32_t TIM_CHANNEL_x ,uint32_t Duty_value); //设置PWM输出占空比
SN_PWM_TIM3_CH_mode(uint8_t mod); //设置定时器3的pwm输出精度@通道相关
void SN_TIM_PWM_Start(TIM_t *timx ,uint8_t TIM_CHANNEL_x); //使能PWM1互补通道输出
void SN_TIM_PWM_Stop(TIM_t *timx,uint8_t TIM_CHANNEL_x); //关闭PWM1互补通道输出
void SN_TIM1_OUT_Bleak(uint8_t IO); //刹车引脚设置
SN_TIM3_PWM_Deinit() //去初始化
SN_TIM1_PWM_Deinit() //去初始化

5.SN_TIM3_INT.c

接口:
uint8_t SN_TIM3_CALL_set(uint16_t TIM_ARR_VALUE ,uint8_t OPM_WORK ,void(*call_fun)(void) ,uint32_t NVIC_PRIO_x); //设置定时器中断任务
SN_TIM3_Deinit() //去初始化

6.SN_TIM1_INT.c

接口:
uint8_t SN_TIM1_CALL_set(uint16_t TIM_ARR_VALUE ,uint8_t OPM_WORK ,void(*call_fun)(void) ,uint32_t NVIC_PRIO_x); //设置定时器中断任务
SN_TIM1_Deinit() //去初始化


7.SN_UART.c
接口: (添加奇偶校验处理,添加帧错误处理中断)
已经实现printf()
void SN_UART_init(UART_t *uartx,uint32_t baudrate,uint8_t RX_IO,uint8_t TX_IO); //UARTx初始化
void SN_UART_TX_BULL( UART_t *uartx,uint8_t * BULL , uint16_t BULL_LEN); //发送数组数据
void SN_UART_RX_BULL_set( UART_t *uartx, uint8_t * BULL ,uint16_t BULL_LEN, uint16_t NVIC_PRIO_x); //启动中断接收(后台接收),并设置接收的数组,和大小
void SN_UART_RX_CALL( UART_t *uartx,void (*UART1_CALL_FUN)(void),uint16_t NVIC_PRIO_x ); //使用自定义接收函数
void SN_UART_Deinit(UART_t *uartx); //串口的去初始化
void SN_UART_ORE_CALL(UART_t *uartx , void (*UART_CALL_FUN)(void)); //设置ORE处理函数

8.SN_FLASH.c
接口:
void SN_FLASH_ReadE(uint32_t flash_add, uint8_t* date, uint16_t len); //读出数据
uint8_t SN_FLASH_Write_PAGE(uint8_t PAGE_NUM,uint8_t * data1 , uint16_t len); //按扇区写入数据
void SN_MUC_UID(uint32_t UID[3]); //读出MCU的UID

9.SN_RCC.c
接口:
void SN_SYSCLK_set(uint32_t SYSCLK_from); //设置系统时钟
void SN_CLK_MOC(uint32_t PIN_X , uint32_t RCC_MCO_SRC, uint32_t RCC_MCO_DIV_x); //设置设置源输出


10.SN_SPI.c
接口: (添加中断后台发送处理)
void SN_SPI_IO_set(uint8_t SPI_MOSI_x , uint8_t SPI_MISO_x , uint8_t SPI_SCK_x, uint8_t SPI_NSS_x ); //设置SPI的io
void SN_SPI_MASTER_init(uint32_t SPI_DIV, uint8_t SPI_MODE_X , uint8_t SPI_MSB_OR_LSB ); //SPI外设设置并且启动
void SN_SPI_IO_SOF_cs(uint8_t SPI_SOF_CS_Px); //设置软件片选
void SN_SPI_TX_RX(uint8_t * send_data ,uint8_t * read_data ,uint16_t len); //SPI发送接收
void SN_SPI_TX(uint8_t * send_data ,uint16_t len); //SPI发送数据
void SN_SPI_RX(uint8_t * read_data ,uint16_t len); //SPI接收数据
SN_SPI_Deinit() ; //SPI去初始化

11.SN_DDQ.c

接口: (添加stop调度)

void SN_DDQ_init(void); //调度器模块初始化
void SN_DDQ_TASK_ADD( SN_DDQ_TASK_t * MY_TASK ); //添加任务
void SN_DDQ_RUN(void); //调度器运行



12.i2c_bsp.c (该接口是华大官方例程的模拟iic,标准100k通信,48MHZ ,使用不同的系统时钟频率,要用户自己修改模块内部延时函数)

接口:

void SN_IIC_IO_set(uint8_t SCL_PIN_x ,uint8_t SDA_PIN_x ,uint8_t PULLUP ); //设置iic要使用的通信引脚
void SN_IIC_slave(uint8_t iic_slave_id ); //设置从机id
void SN_IIC_ERROR_call(void (*error_call) (void)); //设置通信错误处理
void bsp_i2c_master_send(uint8_t * g_tx_buffer , uint16_t BUFF_SIZE); //主机发送数据
void bsp_i2c_master_receive(uint8_t * g_rx_buffer,uint16_t BUFF_SIZE); //主机接收数据

13.SN_STOP.c
接口:
void SN_STOP_EN(void); //进入休眠
void SN_LPtim_Rouse(uint16_t cnt); //使用定时器唤醒
void SN_Exti_Rouse(void); //使用io唤醒
void SN_LPtim_ARR(uint16_t cnt); //更新定时间
void SN_LPtim_SN_LPtim_Stop(void); //停止lptim唤醒
void SN_LPtim_SN_LPtim_EN(void); //启动lptim唤醒

来源:csdn

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9451

    浏览量

    156179
  • 代码
    +关注

    关注

    30

    文章

    4942

    浏览量

    73166
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    广州唯创电子WT588F02KD-24SS语音芯片:集多功能于一身,引领小家电产品智能化升级

    在智能家居快速普及的今天,小家电产品的智能化程度已成为消费者选购的重要考量因素。作为专业的语音IC厂家,广州唯创电子推出的WT588F02KD-24SS数码管驱动语音芯片,以其高度集成的特性和卓越
    的头像 发表于 10-29 08:50 390次阅读
    广州唯创电子WT588<b class='flag-5'>F</b>02KD-24SS语音芯片:集多功能于一身,引领<b class='flag-5'>小家电</b>产品智能化升级

    PY32F003国产单片机、外设丰富、高性价比的国产替代方案

    典型应用场景: PY32F003 非常适合那些对成本极度敏感、功能相对简单、功耗要求不高或较低的应用,例如: 消费电子小家电(遥控器、小风扇、LED 控制、玩具) 简单的传感器节点、数据采集器 LED
    发表于 08-21 11:50

    集成线性充电,按键控制及直流电机驱动三合一芯片适用于携便式小家电应用

    描述:PC2107是一款针对于小家电市场设计的集成单节锂电池线性充电功能,轻触按键控制,功率MOS和续流二极管。PC2107支持100mA涓流充电, 500mA恒流充电和4.2V 恒压充电全过程
    发表于 08-02 10:31

    晟鹏科技SPA-SPK30在小家电PTC加热器的应用

    一、电吹风PTC加热器的技术瓶颈与材料革新需求电吹风作为高频使用的小家电,其核心部件PTC(正温度系数陶瓷)加热器的性能直接决定了产品安全性和用户体验。传统PTC加热器采用聚酰亚胺绝缘膜包裹发热
    的头像 发表于 07-31 06:30 978次阅读
    晟鹏科技SPA-SPK30在<b class='flag-5'>小家电</b>PTC加热器的应用

    从自动卷棒到电暖风,LP2179A 如何成为小家电电源 “心脏”?

    小家电的复杂电路世界里,电源芯片如同跳动的“心脏”,为设备稳定运行输送着关键“能量”。芯茂微的LP2179A芯片,以其卓越性能在众多电源芯片中脱颖而出,从打造迷人卷发的自动卷棒,到冬日带来温暖
    的头像 发表于 07-09 18:09 1795次阅读
    从自动<b class='flag-5'>电</b>卷棒到电暖风,LP2179A 如何成为<b class='flag-5'>小家电</b>电源 “心脏”?

    瑞丰光电助力家电市场转型升级

    国补政策红利叠加大促优惠,今年618家电市场热力十足。数据显示,Mini LED电视、新一级能效空调、高效节能洗衣机以及智能小家电等品类表现亮眼,成交额纷纷突破历史峰值。
    的头像 发表于 06-27 14:01 3000次阅读

    非隔离18V500mA小家电电源方案FT8443BD2

    深圳市三佛科技有限公司 分享 非隔离18V500mA小家电电源方案FT8443BD2,原装现货 使用FT8443BD2设计的高精度,高效率,低成本的恒压输出开关电源 规格: 90~264Vac
    发表于 06-19 11:01

    国产MCU的突围之战:华大电子CIU32F003全面评测与技术洞察

    CIU32F003进行全方位技术解析,探讨其在实际应用中的表现与价值。 一、产品定位与技术特性 CIU32F003是华大电子面向中端市场推出的32位通用MCU,采用ARM Cortex-M0+内核架构。该芯片在48MHz主频下可提供56DMIPS的运算性能,配备24KB
    的头像 发表于 06-12 10:14 1229次阅读

    国产芯片崛起!华大电子CIU32F003到底强在哪?

    华大电子MCU CIU32F003的核心价值 CIU32F003是华大电子推出的高性能32位微控制器,基于ARM Cortex-M0+内核,主频高达48MHz,具有低功耗、高集成度和丰富外设等特点
    的头像 发表于 06-09 14:21 1160次阅读

    如何评价华大电子CIU32F003开发板?国产32位MCU能否替代STM32?

    的市场表现(可引用行业报告数据)。 二、深度评测:CIU32F003的硬实力 1. 硬件架构解析 内核对比 :Cortex-M0 vs M3(性能/功耗曲线图) 关键参数 : | 指标
    的头像 发表于 06-05 10:22 1077次阅读

    国产MCU的性价比之选——华大电子CIU32F003深度评测

    在STM32价格飞涨、国产替代需求激增的背景下,华大电子(HDSC)的CIU32F003逐渐进入工程师的视野。作为一款32位ARM Cortex-M0+内核的MCU,它凭借超低价格和均衡性能,成为
    的头像 发表于 06-03 10:42 2230次阅读
    国产MCU的性价比之选——华大电子<b class='flag-5'>CIU32F003</b>深度评测

    小巧身形,强大内核!华大电子CIU32F003双封装方案赋能高密度设计

    华大电子CIU32F003双封装
    的头像 发表于 05-26 14:47 700次阅读

    华大电子CIU32F003 MCU 全面评测与竞品对比,国产替代新选择?

    为什么关注CIU32F003? 最近国产MCU市场越发活跃,华大电子(HDSC)作为国内头部芯片厂商,推出的CIU32F003系列凭借高性价比和稳定性能,成为许多工程师替代STM32/GD32
    的头像 发表于 05-20 11:18 1784次阅读
    华大电子<b class='flag-5'>CIU32F003</b> MCU 全面评测与竞品对比,国产替代新选择?

    芯资讯|WTVxxx语音芯片在养生壶等智能小家电领域的创新应用方案

    一、市场背景与竞争优势随着智能家居市场的爆发式增长,消费者对小家电的智能化、交互性需求显著提升。WTVxxx系列语音芯片凭借高性价比、卓越音质与功能集成度,已成为智能小家电领域的核心驱动方案。该系
    的头像 发表于 04-21 08:33 753次阅读
    芯资讯|WTVxxx语音芯片在养生壶等智能<b class='flag-5'>小家电</b>领域的创新应用方案

    SM7075P 芯片如何赋能小家电电源

    小家电蓬勃发展的当下,电源管理芯片作为其核心部件,正悄然改变着小家电的性能与体验。其中,明微 SM7075P 芯片凭借卓越的性能与创新的设计,脱颖而出,成为众多小家电制造商的理想之选。它不
    的头像 发表于 03-18 17:37 1087次阅读
    SM7075P 芯片如何赋能<b class='flag-5'>小家电</b>电源