文章目录
- 1、CH390芯片介绍
- 2、电路部分
- 3、LWIP调试
- 3.1修改点1
- 3.2 修改点2
- 4、结果展示
- 参考
1、CH390芯片介绍
官网地址: 南京沁恒微电子股份有限公司
特点:
2、电路部分
CH390及接口:
STM32F1引脚:
不含LWIP的demo及LWIP调通demo下载地址:CH390H+STM32F1程序,其中包含无LWIP和有LWIP的两个工程
3、LWIP调试
商家给的demo程序已包含LWIP源码,只是没有用,搞不懂,不知道是不是没调通还是想另收费。
3.1修改点1
LWIP源码不需要做任何修改,唯一需要用户自己实现的就是ethernetif.c中的sys_new()和sys_jiffies(void)函数,有用RTC实现功能的,我这里使用TIM2实现1ms定时。
void TIM2_Init(unsigned int arr, unsigned int psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //时钟使能
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清除中断标志位
TIM_TimeBaseStructure.TIM_Period = arr; //自动重装载周期值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx
TIM_ITConfig( TIM2,TIM_IT_Update, ENABLE );//使能更新触发TIM中断
//中断分组设置
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //TIM2中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
TIM_Cmd(TIM2, ENABLE); //使能TIMx外设
}
uint32_t cnt=0;
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET) //溢出中断
{
cnt++;
if(cnt>=0x7FFFFFFF)
{
cnt=0;
}
}
TIM_ClearITPendingBit(TIM2,TIM_IT_Update); //清除中断标志位
}
extern uint32_t cnt;
u32_t sys_now(void)
{
//return ((RTC->CNTH << 16) | RTC->CNTL);
return cnt;
}
u32_t sys_jiffies(void)
{
//return ((RTC->CNTH << 16) | RTC->CNTL);
return cnt;
}
3.2 修改点2
这里有个大坑,也不知道什么原因,之前一直没调通,问商家也没用,不提供技术支持,后面把这个去掉就正常了
以上就是全部修改点,简单吧,源码不在这里大量展示,可以去下载整个工程。
4、结果展示
ping结果:
回显数据:(板子书TCP server)
串口打印结果:
参考
LwIP应用开发笔记之五:LwIP无操作系统TCP服务器
https://www.cnblogs.com/foxclever/p/11921555.html
【WCH以太网接口系列芯片】STM32+CH390+Lwip协议栈简单应用测试:
https://www.cnblogs.com/sw111/p/18112004